1
- const assertType = < T > ( value : T ) => value ;
2
-
3
1
GameEvents . Subscribe ( 'npc_spawned' , event => {
4
- assertType < EntityIndex > ( event . entindex ) ;
2
+ assertType < EntityIndex > ( event . entindex ) ;
5
3
} ) ;
6
4
7
5
declare global {
8
- interface GameEventDeclarations {
9
- game_event : { foo : string } ;
10
- }
6
+ interface GameEventDeclarations {
7
+ game_event : { foo : string } ;
8
+ }
11
9
}
12
10
13
11
GameEvents . Subscribe ( 'game_event' , event => assertType < string > ( event . foo ) ) ;
14
12
GameEvents . SendEventClientSide ( 'game_event' , { foo : 'bar' } ) ;
15
13
16
14
declare global {
17
- interface CustomGameEventDeclarations {
18
- declared_event : { foo : string } ;
19
- }
15
+ interface CustomGameEventDeclarations {
16
+ declared_event : { foo : string } ;
17
+ }
20
18
}
21
19
22
20
GameEvents . Subscribe ( 'declared_event' , event => assertType < string > ( event . foo ) ) ;
23
21
GameEvents . Subscribe < { foo : string } > ( 'inline_event' , event => assertType < string > ( event . foo ) ) ;
24
22
GameEvents . Subscribe ( 'untyped_event' , event => {
25
- assertType < object > ( event ) ;
26
- // @ts -ignore TODO: Expect error
27
- event . foo ;
23
+ assertType < object > ( event ) ;
24
+ // @ts -ignore TODO: Expect error
25
+ event . foo ;
28
26
} ) ;
29
27
30
28
GameEvents . Subscribe < { array : string [ ] ; boolean : boolean ; symbol : symbol } > ( 'type_test' , event => {
31
- assertType < Record < number , string > > ( event . array ) ;
32
- assertType < 0 | 1 > ( event . boolean ) ;
33
- assertType < { } > ( event . symbol ) ;
29
+ assertType < Record < number , string > > ( event . array ) ;
30
+ assertType < 0 | 1 > ( event . boolean ) ;
31
+ assertType < never > ( event . symbol ) ;
34
32
} ) ;
35
33
36
34
GameEvents . SendCustomGameEventToServer ( 'declared_event' , { foo : 'bar' } ) ;
@@ -39,28 +37,28 @@ GameEvents.SendCustomGameEventToServer<{ foo: 'bar' }>('inline_event', { foo: 'b
39
37
GameEvents . SendCustomGameEventToServer ( 'untyped_event' , { } ) ;
40
38
41
39
declare global {
42
- interface CustomNetTableDeclarations {
43
- custom_net_table : {
44
- foo : string ;
45
- bar : boolean ;
46
- } ;
47
- }
40
+ interface CustomNetTableDeclarations {
41
+ custom_net_table : {
42
+ foo : string ;
43
+ bar : boolean ;
44
+ } ;
45
+ }
48
46
}
49
47
50
48
assertType < string > ( CustomNetTables . GetTableValue ( 'custom_net_table' , 'foo' ) ) ;
51
49
assertType < 0 | 1 > ( CustomNetTables . GetTableValue ( 'custom_net_table' , 'bar' ) ) ;
52
50
53
51
for ( const pair of CustomNetTables . GetAllTableValues ( 'custom_net_table' ) ) {
54
- if ( pair . key === 'foo' ) {
55
- assertType < string > ( pair . value ) ;
56
- } else {
57
- assertType < 0 | 1 > ( pair . value ) ;
58
- }
52
+ if ( pair . key === 'foo' ) {
53
+ assertType < string > ( pair . value ) ;
54
+ } else {
55
+ assertType < 0 | 1 > ( pair . value ) ;
56
+ }
59
57
}
60
58
61
59
CustomNetTables . SubscribeNetTableListener ( 'custom_net_table' , ( _tableName , key , value ) => {
62
- assertType < 'foo' | 'bar' > ( key ) ;
63
- assertType < string | 0 | 1 > ( value ) ;
60
+ assertType < 'foo' | 'bar' > ( key ) ;
61
+ assertType < string | 0 | 1 > ( value ) ;
64
62
} ) ;
65
63
66
64
export { } ;
0 commit comments