@@ -51,13 +51,36 @@ function foo2(x = "string", b: number) {
5151>x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 13, 14))
5252>b : Symbol(b, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 13, 27))
5353
54- x.length;
54+ x.length; // ok, should be string
5555>x.length : Symbol(String.length, Decl(lib.d.ts, --, --))
5656>x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 13, 14))
5757>length : Symbol(String.length, Decl(lib.d.ts, --, --))
5858}
5959
60- // .d.ts should have `T | undefined` for foo1 and foo2
60+ function foo3(x: string | undefined = "string", b: number) {
61+ >foo3 : Symbol(foo3, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 15, 1))
62+ >x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 17, 14))
63+ >b : Symbol(b, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 17, 47))
64+
65+ x.length; // ok, should be string
66+ >x.length : Symbol(String.length, Decl(lib.d.ts, --, --))
67+ >x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 17, 14))
68+ >length : Symbol(String.length, Decl(lib.d.ts, --, --))
69+ }
70+
71+ function foo4(x: string | undefined = undefined, b: number) {
72+ >foo4 : Symbol(foo4, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 19, 1))
73+ >x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 21, 14))
74+ >undefined : Symbol(undefined)
75+ >b : Symbol(b, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 21, 48))
76+
77+ x; // should be string | undefined
78+ >x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 21, 14))
79+ }
80+
81+
82+
83+ // .d.ts should have `string | undefined` for foo1, foo2, foo3 and foo4
6184foo1(undefined, 1);
6285>foo1 : Symbol(foo1, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 7, 36))
6386>undefined : Symbol(undefined)
@@ -66,37 +89,45 @@ foo2(undefined, 1);
6689>foo2 : Symbol(foo2, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 11, 1))
6790>undefined : Symbol(undefined)
6891
92+ foo3(undefined, 1);
93+ >foo3 : Symbol(foo3, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 15, 1))
94+ >undefined : Symbol(undefined)
95+
96+ foo4(undefined, 1);
97+ >foo4 : Symbol(foo4, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 19, 1))
98+ >undefined : Symbol(undefined)
99+
69100
70101function removeUndefinedButNotFalse(x = true) {
71- >removeUndefinedButNotFalse : Symbol(removeUndefinedButNotFalse, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 19 , 19))
72- >x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 22 , 36))
102+ >removeUndefinedButNotFalse : Symbol(removeUndefinedButNotFalse, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 31 , 19))
103+ >x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 34 , 36))
73104
74105 if (x === false) {
75- >x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 22 , 36))
106+ >x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 34 , 36))
76107
77108 return x;
78- >x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 22 , 36))
109+ >x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 34 , 36))
79110 }
80111}
81112
82113declare const cond: boolean;
83- >cond : Symbol(cond, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 28 , 13))
114+ >cond : Symbol(cond, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 40 , 13))
84115
85116function removeNothing(y = cond ? true : undefined) {
86- >removeNothing : Symbol(removeNothing, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 28 , 28))
87- >y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 29 , 23))
88- >cond : Symbol(cond, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 28 , 13))
117+ >removeNothing : Symbol(removeNothing, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 40 , 28))
118+ >y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 41 , 23))
119+ >cond : Symbol(cond, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 40 , 13))
89120>undefined : Symbol(undefined)
90121
91122 if (y !== undefined) {
92- >y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 29 , 23))
123+ >y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 41 , 23))
93124>undefined : Symbol(undefined)
94125
95126 if (y === false) {
96- >y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 29 , 23))
127+ >y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 41 , 23))
97128
98129 return y;
99- >y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 29 , 23))
130+ >y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 41 , 23))
100131 }
101132 }
102133 return true;
0 commit comments