On Tue, Apr 8, 2008 at 12:20 PM, Lars Hansen <[EMAIL PROTECTED]> wrote:
>  One facility that was introduced in this draft copies the
>  type tags of 'const' and 'var' attributed properties into
>  the type of the object, for "ease of use".  As a consequence,
>  this test is true:

I don't understand how this could work for "var".


>   { const x: "foo" } is { x: string }
>
>  I am going to remove that facility again because it violates
>  the "explicit is better than implicit" principle.  IMO the
>  programmer should state her intent:
>
>   { const x: "foo" } : { x: string }

A possible counter-argument is that the type of "foo" is string rather
than *. We don't make the programmer write

    "foo" :string

in order to get the right type.


>  (It's easy to say that when the literals are simple then the
>  types are obvious, but once they involve more complicated
>  expressions I'm guessing the gains are illusory.)

That's not clear to me. The cases that come to mind compose well:

    { const x: { const y: "bar" } }

has type { x: { y: string }}


-- 
    Cheers,
    --MarkM
_______________________________________________
Es4-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to