-
Notifications
You must be signed in to change notification settings - Fork 13.2k
Closed
Labels
Working as IntendedThe behavior described is the intended behavior; this is not a bugThe behavior described is the intended behavior; this is not a bug
Description
TypeScript Version: 2.1.4
The inferred type of a tuple expression is an array, for example
const foo = ['hello', 3, true] // foo: (string | number | boolean)[]which is a pain when what you really wanted was a tuple; you need to give a type ascription in order to tell the compiler you meant it to be a tuple, e.g.
const foo: [string, number, boolean] = ['hello', 3, true]It seems like this is wholly unnecessary, because the type [string, number, boolean] is assignable to (string | number | boolean)[], and carries strictly more information. So the compiler is prematurely throwing away information, when it could just wait and see if later on the type needs to be specialized to an array.
Metadata
Metadata
Assignees
Labels
Working as IntendedThe behavior described is the intended behavior; this is not a bugThe behavior described is the intended behavior; this is not a bug