-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Expand file tree
/
Copy pathtypeannotations.ts
More file actions
65 lines (60 loc) · 1.83 KB
/
typeannotations.ts
File metadata and controls
65 lines (60 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
interface Point { x: number; y: number }
namespace N {
export interface I {}
export interface J<T> {}
}
var anyVar: any;
var objectVar: object;
var numberVar: number;
var stringVar: string;
var booleanVar: boolean;
var nullVar: null;
var undefinedVar: undefined;
var voidVar: void;
var neverVar: never;
var symbolVar: symbol;
var objectVar: { x: number; }
var nestedObjectVar: { x: { y: number } }
var arrayVar: number[]
var stringObjectVar: String
var pointVar: Point
var rawFunctionVar: Function
var varVar: x11
var genericArrayVar: Array<number>
var nestedGenericVar: Foo<Foo<number>>
var callSigVar: () => number;
var constructSigVar: new () => Point;
var callSigVoidVar: () => void;
var callSigNeverVar: () => never;
var unionVar: number | string;
var stringLiteralVar: "literal";
var trueVar: true;
var falseVar: false;
var intLiteralVar: 100;
var doubleLiteralVar: 100.50;
var tupleVar: [string, number]
var longUnionVar: null | 1 | "two" | [3]
var intersectVar: Foo & Bar;
var genericCallSigVar: <T>(x: T) => T;
var genericConstructSigVar: new <T>(x: T) => T;
var keyofVar: keyof Point
var indexedVar: Point["x"]
var typeofVar: typeof x31
var mappedVar: { [K in keyof Point]: any }
var parenthesizedVar: (number);
var namespaceTypeVar: N.I;
var namespaceGenericTypeVar: N.J<number>;
interface GenericInterface<T> {
field: T;
method(x: T): T;
}
abstract class GenericClass<T> implements GenericInterface<T> {
field: T
abstract method(x:T): T;
}
class Fish {}
class Bird {}
function isFish(pet : Fish | Bird): pet is Fish {}
class ThisTypes {
foo(x: number): this { return this; }
}