This is important for incremental parsing, as it is where we can attach parse errors at the end of the file to. Also, it helps with things like emitting comments at the end of the file.
120 lines
1.4 KiB
TypeScript
120 lines
1.4 KiB
TypeScript
//// [everyTypeAssignableToAny.ts]
|
|
var a: any;
|
|
|
|
class C {
|
|
foo: string;
|
|
}
|
|
var ac: C;
|
|
interface I {
|
|
foo: string;
|
|
}
|
|
var ai: I;
|
|
|
|
enum E { A }
|
|
var ae: E;
|
|
|
|
var b: number;
|
|
var c: string;
|
|
var d: boolean;
|
|
var e: Date;
|
|
var f: any;
|
|
var g: void;
|
|
var h: Object;
|
|
var i: {};
|
|
var j: () => {};
|
|
var k: Function;
|
|
var l: (x: number) => string;
|
|
var m: number[];
|
|
var n: { foo: string };
|
|
var o: <T>(x: T) => T;
|
|
var p: Number;
|
|
var q: String;
|
|
|
|
a = b;
|
|
a = c;
|
|
a = d;
|
|
a = e;
|
|
a = f;
|
|
a = g;
|
|
a = h;
|
|
a = i;
|
|
a = j;
|
|
a = k;
|
|
a = l;
|
|
a = m;
|
|
a = o;
|
|
a = p;
|
|
a = q;
|
|
a = ac;
|
|
a = ai;
|
|
a = ae;
|
|
|
|
function foo<T, U /*extends T*/, V extends Date>(x: T, y: U, z: V) {
|
|
a = x;
|
|
a = y;
|
|
a = z;
|
|
}
|
|
//function foo<T, U extends T, V extends Date>(x: T, y: U, z: V) {
|
|
// a = x;
|
|
// a = y;
|
|
// a = z;
|
|
//}
|
|
|
|
//// [everyTypeAssignableToAny.js]
|
|
var a;
|
|
var C = (function () {
|
|
function C() {
|
|
}
|
|
return C;
|
|
})();
|
|
var ac;
|
|
var ai;
|
|
var E;
|
|
(function (E) {
|
|
E[E["A"] = 0] = "A";
|
|
})(E || (E = {}));
|
|
var ae;
|
|
var b;
|
|
var c;
|
|
var d;
|
|
var e;
|
|
var f;
|
|
var g;
|
|
var h;
|
|
var i;
|
|
var j;
|
|
var k;
|
|
var l;
|
|
var m;
|
|
var n;
|
|
var o;
|
|
var p;
|
|
var q;
|
|
a = b;
|
|
a = c;
|
|
a = d;
|
|
a = e;
|
|
a = f;
|
|
a = g;
|
|
a = h;
|
|
a = i;
|
|
a = j;
|
|
a = k;
|
|
a = l;
|
|
a = m;
|
|
a = o;
|
|
a = p;
|
|
a = q;
|
|
a = ac;
|
|
a = ai;
|
|
a = ae;
|
|
function foo(x, y, z) {
|
|
a = x;
|
|
a = y;
|
|
a = z;
|
|
}
|
|
//function foo<T, U extends T, V extends Date>(x: T, y: U, z: V) {
|
|
// a = x;
|
|
// a = y;
|
|
// a = z;
|
|
//}
|