Consistently add undefined/missing to optional tuple element types (#50831)

* Consistently add undefined/missing type to optional tuple elements

* Accept new baselines

* Add regression test
This commit is contained in:
Anders Hejlsberg
2022-09-20 18:14:20 -07:00
committed by GitHub
parent d90795e799
commit 01054e05ab
7 changed files with 148 additions and 4 deletions

View File

@@ -0,0 +1,20 @@
// @strict: true
// Repro from #50753
type UnNullify<T> = { [K in keyof T]: NonNullable<T[K]> };
type Foo = UnNullify<[a: 1, b?: 2 | undefined]>;
type Test = [a: 1, b?: 2] extends Foo ? true : false; // true
// Types in the following declarations should be identical
var v: [1, 2?];
var v: [1, (2 | undefined)?];
var v: [a: 1, b?: 2];
var v: [a: 1, b?: 2 | undefined];
var v: UnNullify<[1, 2?]>;
var v: UnNullify<[1, (2 | undefined)?]>;
var v: UnNullify<[a: 1, b?: 2]>;
var v: UnNullify<[a: 1, b?: 2 | undefined]>;