diff --git a/src/lib/es2015.collection.d.ts b/src/lib/es2015.collection.d.ts index fd49ca1f25b8a..46bb7af0c8fc7 100644 --- a/src/lib/es2015.collection.d.ts +++ b/src/lib/es2015.collection.d.ts @@ -9,8 +9,7 @@ interface Map { } interface MapConstructor { - new (): Map; - new (entries?: ReadonlyArray<[K, V]> | null): Map; + new (entries?: ReadonlyArray<[K, V]> | null): Map; readonly prototype: Map; } declare var Map: MapConstructor; @@ -45,8 +44,7 @@ interface Set { } interface SetConstructor { - new (): Set; - new (values?: ReadonlyArray | null): Set; + new (values?: ReadonlyArray | null): Set; readonly prototype: Set; } declare var Set: SetConstructor; @@ -64,8 +62,7 @@ interface WeakSet { } interface WeakSetConstructor { - new (): WeakSet; - new (values?: ReadonlyArray | null): WeakSet; + new (values?: ReadonlyArray | null): WeakSet; readonly prototype: WeakSet; } declare var WeakSet: WeakSetConstructor; diff --git a/src/lib/es2015.iterable.d.ts b/src/lib/es2015.iterable.d.ts index b7c04c60ce039..568d3596ddae3 100644 --- a/src/lib/es2015.iterable.d.ts +++ b/src/lib/es2015.iterable.d.ts @@ -135,7 +135,7 @@ interface MapConstructor { interface WeakMap { } interface WeakMapConstructor { - new (iterable: Iterable<[K, V]>): WeakMap; + new (iterable: Iterable<[K, V]>): WeakMap; } interface Set { @@ -183,7 +183,7 @@ interface SetConstructor { interface WeakSet { } interface WeakSetConstructor { - new (iterable: Iterable): WeakSet; + new (iterable: Iterable): WeakSet; } interface Promise { } diff --git a/tests/baselines/reference/ES5For-ofTypeCheck13.types b/tests/baselines/reference/ES5For-ofTypeCheck13.types index 4812ae8d82c4b..a1cdba4359b78 100644 --- a/tests/baselines/reference/ES5For-ofTypeCheck13.types +++ b/tests/baselines/reference/ES5For-ofTypeCheck13.types @@ -2,7 +2,7 @@ const strSet: Set = new Set() >strSet : Set >Set : Set ->new Set() : Set +>new Set() : Set >Set : SetConstructor strSet.add('Hello') diff --git a/tests/baselines/reference/extendingSetWithCheckJs.symbols b/tests/baselines/reference/extendingSetWithCheckJs.symbols new file mode 100644 index 0000000000000..63bc853976373 --- /dev/null +++ b/tests/baselines/reference/extendingSetWithCheckJs.symbols @@ -0,0 +1,40 @@ +=== tests/cases/compiler/extendingSetWithCheckJs.ts === +class MySet extends Set { +>MySet : Symbol(MySet, Decl(extendingSetWithCheckJs.ts, 0, 0)) +>Set : Symbol(Set, 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, --, --)) + + constructor() { + super(); +>super : Symbol(SetConstructor, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + } +} + +class MyWeakSet extends WeakSet { +>MyWeakSet : Symbol(MyWeakSet, Decl(extendingSetWithCheckJs.ts, 4, 1)) +>WeakSet : Symbol(WeakSet, 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, --, --)) + + constructor() { + super(); +>super : Symbol(WeakSetConstructor, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --)) + } +} + +class MyMap extends Map { +>MyMap : Symbol(MyMap, Decl(extendingSetWithCheckJs.ts, 10, 1)) +>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, --, --)) + + constructor() { + super(); +>super : Symbol(MapConstructor, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + } +} + +class MyWeakMap extends WeakMap { +>MyWeakMap : Symbol(MyWeakMap, Decl(extendingSetWithCheckJs.ts, 16, 1)) +>WeakMap : Symbol(WeakMap, 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, --, --)) + + constructor() { + super(); +>super : Symbol(WeakMapConstructor, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --)) + } +} diff --git a/tests/baselines/reference/extendingSetWithCheckJs.types b/tests/baselines/reference/extendingSetWithCheckJs.types new file mode 100644 index 0000000000000..dd10731e023ae --- /dev/null +++ b/tests/baselines/reference/extendingSetWithCheckJs.types @@ -0,0 +1,44 @@ +=== tests/cases/compiler/extendingSetWithCheckJs.ts === +class MySet extends Set { +>MySet : MySet +>Set : Set + + constructor() { + super(); +>super() : void +>super : SetConstructor + } +} + +class MyWeakSet extends WeakSet { +>MyWeakSet : MyWeakSet +>WeakSet : WeakSet + + constructor() { + super(); +>super() : void +>super : WeakSetConstructor + } +} + +class MyMap extends Map { +>MyMap : MyMap +>Map : Map + + constructor() { + super(); +>super() : void +>super : MapConstructor + } +} + +class MyWeakMap extends WeakMap { +>MyWeakMap : MyWeakMap +>WeakMap : WeakMap + + constructor() { + super(); +>super() : void +>super : WeakMapConstructor + } +} diff --git a/tests/cases/compiler/extendingSetWithCheckJs.ts b/tests/cases/compiler/extendingSetWithCheckJs.ts new file mode 100644 index 0000000000000..b726a5e830c7f --- /dev/null +++ b/tests/cases/compiler/extendingSetWithCheckJs.ts @@ -0,0 +1,28 @@ +// @allowJs: true +// @checkJs: true +// @noEmit: true +// @lib: es2017 + +class MySet extends Set { + constructor() { + super(); + } +} + +class MyWeakSet extends WeakSet { + constructor() { + super(); + } +} + +class MyMap extends Map { + constructor() { + super(); + } +} + +class MyWeakMap extends WeakMap { + constructor() { + super(); + } +} \ No newline at end of file