mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Added tests for tagged templates. Some should fail when we do typechecking.
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
||||
interface I {
|
||||
(stringParts: string[], ...rest: boolean[]): I;
|
||||
g: I;
|
||||
h: I;
|
||||
member: I;
|
||||
thisIsNotATag(x: string): void
|
||||
[x: number]: I;
|
||||
}
|
||||
|
||||
var f: I;
|
||||
|
||||
f `abc`
|
||||
|
||||
f `abc${1}def${2}ghi`;
|
||||
|
||||
f `abc`.member
|
||||
|
||||
f `abc${1}def${2}ghi`.member;
|
||||
|
||||
f `abc`["member"];
|
||||
|
||||
f `abc${1}def${2}ghi`["member"];
|
||||
|
||||
f `abc`[0].member `abc${1}def${2}ghi`;
|
||||
|
||||
f `abc${1}def${2}ghi`["member"].member `abc${1}def${2}ghi`;
|
||||
|
||||
f.thisIsNotATag(`abc`);
|
||||
|
||||
f.thisIsNotATag(`abc${1}def${2}ghi`);
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
// @target: ES6
|
||||
interface I {
|
||||
(stringParts: string[], ...rest: boolean[]): I;
|
||||
g: I;
|
||||
h: I;
|
||||
member: I;
|
||||
thisIsNotATag(x: string): void
|
||||
[x: number]: I;
|
||||
}
|
||||
|
||||
var f: I;
|
||||
|
||||
f `abc`
|
||||
|
||||
f `abc${1}def${2}ghi`;
|
||||
|
||||
f `abc`.member
|
||||
|
||||
f `abc${1}def${2}ghi`.member;
|
||||
|
||||
f `abc`["member"];
|
||||
|
||||
f `abc${1}def${2}ghi`["member"];
|
||||
|
||||
f `abc`[0].member `abc${1}def${2}ghi`;
|
||||
|
||||
f `abc${1}def${2}ghi`["member"].member `abc${1}def${2}ghi`;
|
||||
|
||||
f.thisIsNotATag(`abc`);
|
||||
|
||||
f.thisIsNotATag(`abc${1}def${2}ghi`);
|
||||
@@ -0,0 +1,25 @@
|
||||
var f: any;
|
||||
|
||||
f `abc`
|
||||
|
||||
f `abc${1}def${2}ghi`;
|
||||
|
||||
f.g.h `abc`
|
||||
|
||||
f.g.h `abc${1}def${2}ghi`;
|
||||
|
||||
f `abc`.member
|
||||
|
||||
f `abc${1}def${2}ghi`.member;
|
||||
|
||||
f `abc`["member"];
|
||||
|
||||
f `abc${1}def${2}ghi`["member"];
|
||||
|
||||
f `abc`["member"].someOtherTag `abc${1}def${2}ghi`;
|
||||
|
||||
f `abc${1}def${2}ghi`["member"].someOtherTag `abc${1}def${2}ghi`;
|
||||
|
||||
f.thisIsNotATag(`abc`);
|
||||
|
||||
f.thisIsNotATag(`abc${1}def${2}ghi`);
|
||||
@@ -0,0 +1,25 @@
|
||||
// @target: ES6
|
||||
var f: any;
|
||||
f `abc`
|
||||
|
||||
f `abc${1}def${2}ghi`;
|
||||
|
||||
f.g.h `abc`
|
||||
|
||||
f.g.h `abc${1}def${2}ghi`;
|
||||
|
||||
f `abc`.member
|
||||
|
||||
f `abc${1}def${2}ghi`.member;
|
||||
|
||||
f `abc`["member"];
|
||||
|
||||
f `abc${1}def${2}ghi`["member"];
|
||||
|
||||
f `abc`["member"].someOtherTag `abc${1}def${2}ghi`;
|
||||
|
||||
f `abc${1}def${2}ghi`["member"].someOtherTag `abc${1}def${2}ghi`;
|
||||
|
||||
f.thisIsNotATag(`abc`);
|
||||
|
||||
f.thisIsNotATag(`abc${1}def${2}ghi`);
|
||||
@@ -0,0 +1,30 @@
|
||||
interface I {
|
||||
(stringParts: string[], ...rest: number[]): I;
|
||||
g: I;
|
||||
h: I;
|
||||
member: I;
|
||||
thisIsNotATag(x: string): void
|
||||
[x: number]: I;
|
||||
}
|
||||
|
||||
var f: I;
|
||||
|
||||
f `abc`
|
||||
|
||||
f `abc${1}def${2}ghi`;
|
||||
|
||||
f `abc`.member
|
||||
|
||||
f `abc${1}def${2}ghi`.member;
|
||||
|
||||
f `abc`["member"];
|
||||
|
||||
f `abc${1}def${2}ghi`["member"];
|
||||
|
||||
f `abc`[0].member `abc${1}def${2}ghi`;
|
||||
|
||||
f `abc${1}def${2}ghi`["member"].member `abc${1}def${2}ghi`;
|
||||
|
||||
f.thisIsNotATag(`abc`);
|
||||
|
||||
f.thisIsNotATag(`abc${1}def${2}ghi`);
|
||||
@@ -0,0 +1,31 @@
|
||||
// @target: ES6
|
||||
interface I {
|
||||
(stringParts: string[], ...rest: number[]): I;
|
||||
g: I;
|
||||
h: I;
|
||||
member: I;
|
||||
thisIsNotATag(x: string): void
|
||||
[x: number]: I;
|
||||
}
|
||||
|
||||
var f: I;
|
||||
|
||||
f `abc`
|
||||
|
||||
f `abc${1}def${2}ghi`;
|
||||
|
||||
f `abc`.member
|
||||
|
||||
f `abc${1}def${2}ghi`.member;
|
||||
|
||||
f `abc`["member"];
|
||||
|
||||
f `abc${1}def${2}ghi`["member"];
|
||||
|
||||
f `abc`[0].member `abc${1}def${2}ghi`;
|
||||
|
||||
f `abc${1}def${2}ghi`["member"].member `abc${1}def${2}ghi`;
|
||||
|
||||
f.thisIsNotATag(`abc`);
|
||||
|
||||
f.thisIsNotATag(`abc${1}def${2}ghi`);
|
||||
Reference in New Issue
Block a user