Skip to content

Commit 5646743

Browse files
Added tests for defining TemplateStringsArray in certain contexts.
1 parent a7774f2 commit 5646743

7 files changed

Lines changed: 117 additions & 0 deletions
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts(10,1): error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher.
2+
lib.d.ts(502,11): error TS2300: Duplicate identifier 'TemplateStringsArray'.
3+
tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts(2,7): error TS2300: Duplicate identifier 'TemplateStringsArray'.
4+
tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts(8,3): error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
5+
Property 'raw' is missing in type '{ [x: number]: undefined; }'.
6+
7+
8+
==== tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts (3 errors) ====
9+
10+
class TemplateStringsArray {
11+
~~~~~~~~~~~~~~~~~~~~
12+
!!! error TS2300: Duplicate identifier 'TemplateStringsArray'.
13+
}
14+
15+
function f(x: TemplateStringsArray, y: number, z: number) {
16+
}
17+
18+
f({}, 10, 10);
19+
~~
20+
!!! error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
21+
!!! error TS2345: Property 'raw' is missing in type '{ [x: number]: undefined; }'.
22+
23+
f `abcdef${ 1234 }${ 5678 }ghijkl`;
24+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25+
!!! error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
tests/cases/compiler/templateStringsArrayTypeNotDefinedES5Mode.ts(7,1): error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher.
2+
tests/cases/compiler/templateStringsArrayTypeNotDefinedES5Mode.ts(5,3): error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
3+
Property 'raw' is missing in type '{ [x: number]: undefined; }'.
4+
5+
6+
==== tests/cases/compiler/templateStringsArrayTypeNotDefinedES5Mode.ts (2 errors) ====
7+
8+
function f(x: TemplateStringsArray, y: number, z: number) {
9+
}
10+
11+
f({}, 10, 10);
12+
~~
13+
!!! error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
14+
!!! error TS2345: Property 'raw' is missing in type '{ [x: number]: undefined; }'.
15+
16+
f `abcdef${ 1234 }${ 5678 }ghijkl`;
17+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18+
!!! error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
lib.d.ts(502,11): error TS2300: Duplicate identifier 'TemplateStringsArray'.
2+
tests/cases/compiler/templateStringsArrayTypeRedefinedInES6Mode.ts(2,7): error TS2300: Duplicate identifier 'TemplateStringsArray'.
3+
tests/cases/compiler/templateStringsArrayTypeRedefinedInES6Mode.ts(8,3): error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
4+
Property 'raw' is missing in type '{ [x: number]: undefined; }'.
5+
6+
7+
==== tests/cases/compiler/templateStringsArrayTypeRedefinedInES6Mode.ts (2 errors) ====
8+
9+
class TemplateStringsArray {
10+
~~~~~~~~~~~~~~~~~~~~
11+
!!! error TS2300: Duplicate identifier 'TemplateStringsArray'.
12+
}
13+
14+
function f(x: TemplateStringsArray, y: number, z: number) {
15+
}
16+
17+
f({}, 10, 10);
18+
~~
19+
!!! error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
20+
!!! error TS2345: Property 'raw' is missing in type '{ [x: number]: undefined; }'.
21+
22+
f `abcdef${ 1234 }${ 5678 }ghijkl`;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//// [templateStringsArrayTypeRedefinedInES6Mode.ts]
2+
3+
class TemplateStringsArray {
4+
}
5+
6+
function f(x: TemplateStringsArray, y: number, z: number) {
7+
}
8+
9+
f({}, 10, 10);
10+
11+
f `abcdef${ 1234 }${ 5678 }ghijkl`;
12+
13+
//// [templateStringsArrayTypeRedefinedInES6Mode.js]
14+
var TemplateStringsArray = (function () {
15+
function TemplateStringsArray() {
16+
}
17+
return TemplateStringsArray;
18+
})();
19+
function f(x, y, z) {
20+
}
21+
f({}, 10, 10);
22+
f `abcdef${1234}${5678}ghijkl`;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// @target: es5
2+
3+
class TemplateStringsArray {
4+
}
5+
6+
function f(x: TemplateStringsArray, y: number, z: number) {
7+
}
8+
9+
f({}, 10, 10);
10+
11+
f `abcdef${ 1234 }${ 5678 }ghijkl`;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// @target: es5
2+
3+
function f(x: TemplateStringsArray, y: number, z: number) {
4+
}
5+
6+
f({}, 10, 10);
7+
8+
f `abcdef${ 1234 }${ 5678 }ghijkl`;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// @target: es6
2+
3+
class TemplateStringsArray {
4+
}
5+
6+
function f(x: TemplateStringsArray, y: number, z: number) {
7+
}
8+
9+
f({}, 10, 10);
10+
11+
f `abcdef${ 1234 }${ 5678 }ghijkl`;

0 commit comments

Comments
 (0)