idlize

Форк
0
/
test.d.ts 
145 строк · 3.5 Кб
1
declare enum EnumDTS {
2
    ELEM_0 = 0,
3
    ELEM_1 = 1,
4
    ELEM_2 = 2,
5
}
6

7
declare interface BooleanInterfaceDTS {
8
    valBool: boolean
9
}
10

11
declare interface NumberInterfaceDTS {
12
    valNumber: number
13
}
14

15
declare interface StringInterfaceDTS {
16
    valString: string
17
}
18

19
declare interface UnionInterfaceDTS {
20

21
    unionProp: number | boolean
22
}
23

24
declare interface UnionOptionalInterfaceDTS {
25

26
    unionProp: string | undefined
27
}
28

29
declare interface TupleInterfaceDTS {
30

31
    tuple: [number, boolean]
32
}
33

34
declare interface OptionInterfaceDTS {
35

36
    tuple: [boolean?, number?]
37
}
38

39
declare class ClassDTS extends CommonMethod<ClassDTS> {
40

41
    testUnionOptional(value: UnionOptionalInterfaceDTS)
42

43
    testArray(value: Array<number>)
44
}
45

46
// basic types:
47
// - boolean
48
// - number
49
// - string,
50
// - enum
51
// - function
52
//
53
// type | undefined    // undefined
54
// type1 | type2       // union
55
// type[]              // array
56
// [type1, type2]      // tuple
57
// [type1?, type2?]    // tuple optional
58
// [type1 | type2, (type3 | type 4)?]    // tuple union
59
declare class TestAttribute extends CommonMethod<TestAttribute> {
60

61
    // basic types
62
    testBoolean(value: boolean): TestAttribute;
63

64
    testNumber(value: number): TestAttribute;
65

66
    testString(value: string): TestAttribute;
67

68
    testEnum(value: EnumDTS): TestAttribute
69

70
    testFunction(value: (a: number) => boolean): TestAttribute;
71

72
    testBasicMix(v1: number, v2: string, v3: number): TestAttribute
73

74
    // undefined
75

76
    testBooleanUndefined(value: boolean | undefined): TestAttribute;
77

78
    testNumberUndefined(value: number | undefined): TestAttribute;
79

80
    testStringUndefined(value: string | undefined): TestAttribute;
81

82
    testEnumUndefined(value: EnumDTS | undefined): TestAttribute;
83

84
    testFunctionUndefined(value: (a: number) => boolean | undefined): TestAttribute;
85

86
    // union
87

88
    testUnionNumberEnum(val: number | EnumDTS): TestAttribute
89

90
    testUnionBooleanString(val: boolean | string): TestAttribute
91

92
    testUnionStringNumber(val: string | number): TestAttribute
93

94
    testUnionBooleanStringNumberUndefined(val: boolean | string | number | undefined): TestAttribute
95

96
    // array
97

98
    testBooleanArray(value: boolean[]): TestAttribute;
99

100
    testNumberArray(value: number[]): TestAttribute;
101

102
    testStringArray(value: string[]): TestAttribute;
103

104
    testEnumArray(value: EnumDTS[]): TestAttribute
105

106
    // TBD: array of functions
107
    // testFunctionArray(value: ((a: number) => boolean)[]): TestAttribute;
108

109
    testArrayMix(v1: number[], v2: string[], v3: EnumDTS[]): TestAttribute;
110

111
    // TBD: array of functions
112
    //testArrayMix(v1: number[], v2: string[], v3: EnumDTS[], v4: ((a: number) => string)[]): TestAttribute;
113

114
    // tuple
115

116
    testTuple(value: [boolean, number]): TestAttribute;
117

118
    testTuple(value: [number, string, EnumDTS]): TestAttribute;
119

120
    // tuple optional
121

122
    testTupleOptional(value: [number, string?, boolean?, EnumDTS?]): TestAttribute;
123

124
    // tuple union
125

126
    testTupleUnion(value: [(number | string), (boolean | EnumDTS), (string | EnumDTS | boolean)?]): TestAttribute;
127

128
    // interface
129

130
    testBooleanInterface(value: BooleanInterfaceDTS): Attribute
131

132
    testNumberInterface(value: NumberInterfaceDTS): Attribute
133

134
    testStringInterface(value: StringInterfaceDTS)
135

136
    testUnionInterface(value: UnionInterfaceDTS)
137

138
    testUnionOptional(value: UnionOptionalInterfaceDTS)
139

140
    testTupleInterface(value: TupleInterfaceDTS)
141

142
    testOptionInterface(value: OptionInterfaceDTS)
143

144
    testInterfaceMixed(v1: UnionInterfaceDTS, v2: number, v3: TupleInterfaceDTS)
145
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.