-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
input.ts
82 lines (66 loc) · 1.32 KB
/
input.ts
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import 'reflect-metadata'
let returnType: unknown;
function decorator(target: any, key: string | symbol, descriptor: PropertyDescriptor): void {
returnType = Reflect.getMetadata('design:returntype', target, key);
}
enum NumericEnum {
A,
B,
C,
}
enum StringEnum {
A = "A",
B = "B",
C = "C",
}
enum ObjectEnum {
A = "A",
B = 2,
C = "C",
}
class Foo {
@decorator
public foo(x: string): string {
return 'foo';
}
@decorator
public bar(x: string): number {
return 123;
}
@decorator
public baz(): string | number {
return 'baz';
}
@decorator
public qux() {
return 'qux';
}
@decorator
public async quux() {
return 'quux';
}
@decorator
public numeric_array(): number[] {
return [1, 2, 3];
}
@decorator
public string_array(): string[] {
return ['first', 'second', 'third'];
}
@decorator
public numeric_enum(): NumericEnum {
return NumericEnum.A;
}
@decorator
public string_enum(): StringEnum {
return StringEnum.A;
}
@decorator
public object_enum(): ObjectEnum {
return ObjectEnum.A;
}
@decorator
public array_enum(): StringEnum[] {
return [StringEnum.A, StringEnum.B, StringEnum.C];
}
}