Type combinations
Lars T Hansen
lth at acm.org
Sat Nov 24 11:35:39 PST 2007
On Nov 24, 2007 3:37 PM, Peter Hall <peter.hall at memorphic.com> wrote:
> Is there any way to express an "intersection" type, analogous to a
> union type?
None at present. I toyed with similar things for a while, being able
to subtract types from unions and so on.
> I can see there may be fewer use cases that there are for
> union types, but they could be useful in the following cases:
>
> 1. An argument must implement two interfaces, but it's not practical
> to introduce a 3rd interface to unify them as a single type.
> 2. An argument must be some subtype of a given type, but also
> implement one or more additional interfaces.
>
> A trivial example (using dubious syntax):
>
> function replicateObject(obj:(DisplayObject & IClonable)):void
> {
> var copy:DisplayObject = obj.clone();
> parent.addChild(copy);
> }
>
>
> I know that proposals are closed now, but this seems simpler than -
> and complimentary to - union types.
I think TG1 should look into various kinds of type constraints for the
next iteration of the spec -- this would be interesting for the
parameterized types, also. For now, proposals really need to be
closed if we're going to finish the spec within a reasonable time. I
will write up this as a ticket in Trac and then immediately resolve it
as "Deferred"; the intent is that we will produce a document with
deferred ideas by and by. There are lots of them.
--lars
More information about the Es4-discuss
mailing list