fix(union): Union.create() shouldn't ignore extra arguments #151
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Children in type Union could be any type, currently means it could be either
SimpleType
orComplexType
so the rest arguments such asenvironment, parent, subpath
shouldn't be ignored in methodUnion.create()
.I would have tried to declare the method
create
into the typeIComplexType
such as:Then it might be a type
IComplexType<any, any>|IType<any, any>
orIComplexType<any, any>|ISimpleType<any, any>
could be used in the Class Union.But I'm confused with the current structure in MST:
So far so good, but why
ComplexType extends Type
rather thanComplexType extends Type implements IComplexType
? It doesn't make sense to me.Besides, if I use the union type like
IComplexType<any, any>|IType<any, any>
orIComplexType<any, any>|ISimpleType<any, any>
, I wouldn't know how to distinguish them in runtime so that I cannot give it a specific assertion.That's why finally I just changed the parameter declarations in
IType.create()
.