Added tests for defining TemplateStringsArray in certain contexts.

This commit is contained in:
Daniel Rosenwasser
2014-11-13 15:17:53 -08:00
parent a7774f2868
commit 5646743559
7 changed files with 117 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts(10,1): error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher.
lib.d.ts(502,11): error TS2300: Duplicate identifier 'TemplateStringsArray'.
tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts(2,7): error TS2300: Duplicate identifier 'TemplateStringsArray'.
tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts(8,3): error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
Property 'raw' is missing in type '{ [x: number]: undefined; }'.
==== tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts (3 errors) ====
class TemplateStringsArray {
~~~~~~~~~~~~~~~~~~~~
!!! error TS2300: Duplicate identifier 'TemplateStringsArray'.
}
function f(x: TemplateStringsArray, y: number, z: number) {
}
f({}, 10, 10);
~~
!!! error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
!!! error TS2345: Property 'raw' is missing in type '{ [x: number]: undefined; }'.
f `abcdef${ 1234 }${ 5678 }ghijkl`;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher.

View File

@@ -0,0 +1,18 @@
tests/cases/compiler/templateStringsArrayTypeNotDefinedES5Mode.ts(7,1): error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher.
tests/cases/compiler/templateStringsArrayTypeNotDefinedES5Mode.ts(5,3): error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
Property 'raw' is missing in type '{ [x: number]: undefined; }'.
==== tests/cases/compiler/templateStringsArrayTypeNotDefinedES5Mode.ts (2 errors) ====
function f(x: TemplateStringsArray, y: number, z: number) {
}
f({}, 10, 10);
~~
!!! error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
!!! error TS2345: Property 'raw' is missing in type '{ [x: number]: undefined; }'.
f `abcdef${ 1234 }${ 5678 }ghijkl`;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1159: Tagged templates are only available when targeting ECMAScript 6 and higher.

View File

@@ -0,0 +1,22 @@
lib.d.ts(502,11): error TS2300: Duplicate identifier 'TemplateStringsArray'.
tests/cases/compiler/templateStringsArrayTypeRedefinedInES6Mode.ts(2,7): error TS2300: Duplicate identifier 'TemplateStringsArray'.
tests/cases/compiler/templateStringsArrayTypeRedefinedInES6Mode.ts(8,3): error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
Property 'raw' is missing in type '{ [x: number]: undefined; }'.
==== tests/cases/compiler/templateStringsArrayTypeRedefinedInES6Mode.ts (2 errors) ====
class TemplateStringsArray {
~~~~~~~~~~~~~~~~~~~~
!!! error TS2300: Duplicate identifier 'TemplateStringsArray'.
}
function f(x: TemplateStringsArray, y: number, z: number) {
}
f({}, 10, 10);
~~
!!! error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
!!! error TS2345: Property 'raw' is missing in type '{ [x: number]: undefined; }'.
f `abcdef${ 1234 }${ 5678 }ghijkl`;

View File

@@ -0,0 +1,22 @@
//// [templateStringsArrayTypeRedefinedInES6Mode.ts]
class TemplateStringsArray {
}
function f(x: TemplateStringsArray, y: number, z: number) {
}
f({}, 10, 10);
f `abcdef${ 1234 }${ 5678 }ghijkl`;
//// [templateStringsArrayTypeRedefinedInES6Mode.js]
var TemplateStringsArray = (function () {
function TemplateStringsArray() {
}
return TemplateStringsArray;
})();
function f(x, y, z) {
}
f({}, 10, 10);
f `abcdef${1234}${5678}ghijkl`;

View File

@@ -0,0 +1,11 @@
// @target: es5
class TemplateStringsArray {
}
function f(x: TemplateStringsArray, y: number, z: number) {
}
f({}, 10, 10);
f `abcdef${ 1234 }${ 5678 }ghijkl`;

View File

@@ -0,0 +1,8 @@
// @target: es5
function f(x: TemplateStringsArray, y: number, z: number) {
}
f({}, 10, 10);
f `abcdef${ 1234 }${ 5678 }ghijkl`;

View File

@@ -0,0 +1,11 @@
// @target: es6
class TemplateStringsArray {
}
function f(x: TemplateStringsArray, y: number, z: number) {
}
f({}, 10, 10);
f `abcdef${ 1234 }${ 5678 }ghijkl`;