@@ -60,6 +60,33 @@ expectTypeOf(branded.bestFriend).toEqualTypeOf<BrandedUser>();
60
60
expectTypeOf < Awaited < typeof branded . friends > > ( ) . toEqualTypeOf < ManyArray < BrandedUser > > ( ) ;
61
61
expectTypeOf < Awaited < typeof branded . twin > > ( ) . toEqualTypeOf < BrandedUser | null > ( ) ;
62
62
63
+ class BrandedTypedUser extends Model {
64
+ @attr ( 'string' ) declare name : string | null ;
65
+ @hasMany < BrandedTypedUser > ( 'user' , { async : false , inverse : null } ) declare enemies : ManyArray < BrandedTypedUser > ;
66
+ @belongsTo < BrandedTypedUser > ( 'user' , { async : false , inverse : null } ) declare bestFriend : BrandedTypedUser ;
67
+ @hasMany < BrandedTypedUser > ( 'user' , { async : true , inverse : 'friends' } )
68
+ declare friends : PromiseManyArray < BrandedTypedUser > ;
69
+ @belongsTo < BrandedTypedUser > ( 'user' , { async : true , inverse : 'twin' } )
70
+ declare twin : PromiseBelongsTo < BrandedTypedUser > ;
71
+ @hasMany < BrandedTypedUser > ( 'user' , { async : false , inverse : 'leader' } )
72
+ declare crew : PromiseManyArray < BrandedTypedUser > ;
73
+ @belongsTo < BrandedTypedUser > ( 'user' , { async : false , inverse : 'crew' } )
74
+ declare leader : PromiseBelongsTo < BrandedTypedUser > ;
75
+
76
+ [ ResourceType ] = 'user' as const ;
77
+ }
78
+ const brandedAndTyped = new BrandedTypedUser ( ) ;
79
+
80
+ expectTypeOf < Awaited < PromiseManyArray < BrandedTypedUser > > [ 'modelName' ] > ( ) . toEqualTypeOf < 'user' > ( ) ;
81
+ expectTypeOf < ManyArray < BrandedTypedUser > [ 'modelName' ] > ( ) . toEqualTypeOf < 'user' > ( ) ;
82
+ expectTypeOf < ManyArray < BrandedTypedUser > > ( ) . toMatchTypeOf < BrandedTypedUser [ ] > ( ) ;
83
+
84
+ expectTypeOf ( brandedAndTyped . name ) . toEqualTypeOf < string | null > ( ) ;
85
+ expectTypeOf ( brandedAndTyped . enemies ) . toEqualTypeOf < ManyArray < BrandedTypedUser > > ( ) ;
86
+ expectTypeOf ( brandedAndTyped . bestFriend ) . toEqualTypeOf < BrandedTypedUser > ( ) ;
87
+ expectTypeOf < Awaited < typeof brandedAndTyped . friends > > ( ) . toEqualTypeOf < ManyArray < BrandedTypedUser > > ( ) ;
88
+ expectTypeOf < Awaited < typeof brandedAndTyped . twin > > ( ) . toEqualTypeOf < BrandedTypedUser | null > ( ) ;
89
+
63
90
// ------------------------------
64
91
// References
65
92
// ------------------------------
0 commit comments