Comments (3)
IIRC, the precedence of the array and union operators is not what you'd expect. Based on your spacing, it's obvious to a human that you want a union of arrays (and possibly nil). However, the type parser doesn't consider spacing and applies different rules. Could you try wrapping your arrays in parentheses and see if that gives the result you expect?
from datatype-expansion.
BTW, the code for that is here. As you can probably see, it's an ad hoc parser, and it doesn't follow consistent precedence rules. Unfortunately, AFAIK the RAML spec does not provide a grammar or precedences rules for type expressions.
from datatype-expansion.
If I try to use type (integer[]) | (string[])
the tools.expandedForm
throws an error:
Error: could not resolve: integer[])
at expandForm (/node_modules/datatype-expansion/src/expanded.js:134:11)
at form.anyOf.form.anyOf.map.elem (/node_modules/datatype-expansion/src/expanded.js:226:39)
at Array.map (<anonymous>)
at expandUnion (/node_modules/datatype-expansion/src/expanded.js:226:27)
at expandForm (/node_modules/datatype-expansion/src/expanded.js:104:14)
at expandForm (/node_modules/datatype-expansion/src/expanded.js:96:16)
at expandForm (/node_modules/datatype-expansion/src/expanded.js:165:36)
at Object.expandedForm (/node_modules/datatype-expansion/src/expanded.js:33:12)
Is this the library bug?
But I can use type ((integer[]) | (string[]))
and get the result I expect, thank you.
from datatype-expansion.
Related Issues (20)
- The minimum and maximum fields of type disappears HOT 1
- incompatible types error with recursive types
- An in-range update of rollup is breaking the build 🚨 HOT 34
- An in-range update of babel7 is breaking the build 🚨 HOT 32
- An in-range update of rollup is breaking the build 🚨 HOT 8
- Extra attributes of properties are not preserved in minType
- Should canonicalization remove single-element type arrays? HOT 5
- Doesn't work with RAML parser HOT 4
- Error incompatible types HOT 4
- Goog is not defined with Jest. HOT 1
- Inherited subtypes not handled properly
- Make union hoisting optional in canonicalization HOT 3
- Canonicalization adds undefined required property to array of union
- Canonicalized unions have extraneous additionalProperties
- Canonicalization can include properties in union
- increase coverage HOT 1
- minType error incompatible types: [object, [object Object]]
- minType union handling does not preserve non-functional facets HOT 3
- property with the name "type" not handled properly HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from datatype-expansion.