diff --git a/src/lib/es2015.collection.d.ts b/src/lib/es2015.collection.d.ts index 34afa3d1b2b..4f293f0f6c3 100644 --- a/src/lib/es2015.collection.d.ts +++ b/src/lib/es2015.collection.d.ts @@ -10,7 +10,7 @@ interface Map { interface MapConstructor { new(): Map; - new(entries?: ReadonlyArray<[K, V]> | null): Map; + new(entries?: ReadonlyArray | null): Map; readonly prototype: Map; } declare var Map: MapConstructor; diff --git a/src/lib/es2015.iterable.d.ts b/src/lib/es2015.iterable.d.ts index f0a38dff3fe..b679bea14d5 100644 --- a/src/lib/es2015.iterable.d.ts +++ b/src/lib/es2015.iterable.d.ts @@ -129,7 +129,7 @@ interface ReadonlyMap { } interface MapConstructor { - new (iterable: Iterable<[K, V]>): Map; + new (iterable: Iterable): Map; } interface WeakMap { } diff --git a/tests/baselines/reference/mapConstructorOnReadonlyTuple.js b/tests/baselines/reference/mapConstructorOnReadonlyTuple.js new file mode 100644 index 00000000000..af2a3b20b4c --- /dev/null +++ b/tests/baselines/reference/mapConstructorOnReadonlyTuple.js @@ -0,0 +1,7 @@ +//// [mapConstructorOnReadonlyTuple.ts] +const pairs = [['1', 1], ['2', 2]] as const +new Map(pairs); + +//// [mapConstructorOnReadonlyTuple.js] +const pairs = [['1', 1], ['2', 2]]; +new Map(pairs); diff --git a/tests/baselines/reference/mapConstructorOnReadonlyTuple.symbols b/tests/baselines/reference/mapConstructorOnReadonlyTuple.symbols new file mode 100644 index 00000000000..8811f5b92db --- /dev/null +++ b/tests/baselines/reference/mapConstructorOnReadonlyTuple.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/mapConstructorOnReadonlyTuple.ts === +const pairs = [['1', 1], ['2', 2]] as const +>pairs : Symbol(pairs, Decl(mapConstructorOnReadonlyTuple.ts, 0, 5)) + +new Map(pairs); +>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>pairs : Symbol(pairs, Decl(mapConstructorOnReadonlyTuple.ts, 0, 5)) + diff --git a/tests/baselines/reference/mapConstructorOnReadonlyTuple.types b/tests/baselines/reference/mapConstructorOnReadonlyTuple.types new file mode 100644 index 00000000000..44fc38fa797 --- /dev/null +++ b/tests/baselines/reference/mapConstructorOnReadonlyTuple.types @@ -0,0 +1,17 @@ +=== tests/cases/compiler/mapConstructorOnReadonlyTuple.ts === +const pairs = [['1', 1], ['2', 2]] as const +>pairs : readonly [readonly ["1", 1], readonly ["2", 2]] +>[['1', 1], ['2', 2]] as const : readonly [readonly ["1", 1], readonly ["2", 2]] +>[['1', 1], ['2', 2]] : readonly [readonly ["1", 1], readonly ["2", 2]] +>['1', 1] : readonly ["1", 1] +>'1' : "1" +>1 : 1 +>['2', 2] : readonly ["2", 2] +>'2' : "2" +>2 : 2 + +new Map(pairs); +>new Map(pairs) : Map<"1" | "2", 1 | 2> +>Map : MapConstructor +>pairs : readonly [readonly ["1", 1], readonly ["2", 2]] + diff --git a/tests/cases/compiler/mapConstructorOnReadonlyTuple.ts b/tests/cases/compiler/mapConstructorOnReadonlyTuple.ts new file mode 100644 index 00000000000..f4914e67def --- /dev/null +++ b/tests/cases/compiler/mapConstructorOnReadonlyTuple.ts @@ -0,0 +1,4 @@ +// @target: es2015 + +const pairs = [['1', 1], ['2', 2]] as const +new Map(pairs); \ No newline at end of file