f619282af1
* Remove check narrowing only certain types, add test showing issues with this * string literal case test * Reconcile fix with CFA work * Defaultable -> NotNarrowable to align with use * Missed a defaultable in comments * Add test for narrowing to unions of string literals * Actually merge from master * Run fixupParentReferences when parsing isolated jsDocComment * initial revision of unit test support for project system in tsserver * Add non-widening forms of null and undefined * Create separate control flows for property declarations with initializers * Add regression test * Add tests * Remove unused variable * Add null check and CR feedback * Revert "Merge pull request #7235 from weswigham/narrow-all-types" This reverts commitef0f6c8fe4
, reversing changes made to9f087cb62a
. * reuse the fixupParentReferences function * Fix up error from merging with master
22 lines
487 B
TypeScript
22 lines
487 B
TypeScript
// array literals are widened upon assignment according to their element type
|
|
|
|
var a = []; // any[]
|
|
var a = [,,];
|
|
|
|
var a = [null, null];
|
|
var a = [undefined, undefined];
|
|
|
|
var b = [[], [null, null]]; // any[][]
|
|
var b = [[], []];
|
|
var b = [[undefined, undefined]];
|
|
|
|
var c = [[[]]]; // any[][][]
|
|
var c = [[[null]],[undefined]]
|
|
|
|
// no widening when one or more elements are non-widening
|
|
|
|
var x: undefined = undefined;
|
|
|
|
var d = [x];
|
|
var d = [, x];
|
|
var d = [undefined, x];
|