@@ -116,10 +116,10 @@ export type Obj = Record<string, Schema>;
116
116
// https://github.com/misskey-dev/misskey/issues/8535
117
117
// To avoid excessive stack depth error,
118
118
// deceive TypeScript with UnionToIntersection (or more precisely, `infer` expression within it).
119
- export type ObjType < s extends Obj , RequiredProp extends keyof s > =
119
+ export type ObjType < s extends Obj , RequiredProps extends ReadonlyArray < keyof s > > =
120
120
UnionToIntersection <
121
121
{ - readonly [ R in RequiredPropertyNames < s > ] -?: SchemaType < s [ R ] > } &
122
- { - readonly [ R in RequiredProp ] -?: SchemaType < s [ R ] > } &
122
+ { - readonly [ R in RequiredProps [ number ] ] -?: SchemaType < s [ R ] > } &
123
123
{ - readonly [ P in keyof s ] ?: SchemaType < s [ P ] > }
124
124
> ;
125
125
@@ -137,16 +137,16 @@ type PartialIntersection<T> = Partial<UnionToIntersection<T>>;
137
137
// To get union, we use `Foo extends any ? Hoge<Foo> : never`
138
138
type UnionSchemaType < a extends readonly any [ ] , X extends Schema = a [ number ] > = X extends any ? SchemaType < X > : never ;
139
139
//type UnionObjectSchemaType<a extends readonly any[], X extends Schema = a[number]> = X extends any ? ObjectSchemaType<X> : never;
140
- type UnionObjType < s extends Obj , a extends readonly any [ ] , X extends ReadonlyArray < keyof s > = a [ number ] > = X extends any ? ObjType < s , X [ number ] > : never ;
140
+ type UnionObjType < s extends Obj , a extends readonly any [ ] , X extends ReadonlyArray < keyof s > = a [ number ] > = X extends any ? ObjType < s , X > : never ;
141
141
type ArrayUnion < T > = T extends any ? Array < T > : never ;
142
142
143
143
type ObjectSchemaTypeDef < p extends Schema > =
144
144
p [ 'ref' ] extends keyof typeof refs ? Packed < p [ 'ref' ] > :
145
145
p [ 'properties' ] extends NonNullable < Obj > ?
146
146
p [ 'anyOf' ] extends ReadonlyArray < Schema > ? p [ 'anyOf' ] [ number ] [ 'required' ] extends ReadonlyArray < keyof p [ 'properties' ] > ?
147
- UnionObjType < p [ 'properties' ] , NonNullable < p [ 'anyOf' ] [ number ] [ 'required' ] > > & ObjType < p [ 'properties' ] , NonNullable < p [ 'required' ] > [ number ] >
147
+ UnionObjType < p [ 'properties' ] , NonNullable < p [ 'anyOf' ] [ number ] [ 'required' ] > > & ObjType < p [ 'properties' ] , NonNullable < p [ 'required' ] > >
148
148
: never
149
- : ObjType < p [ 'properties' ] , NonNullable < p [ 'required' ] > [ number ] >
149
+ : ObjType < p [ 'properties' ] , NonNullable < p [ 'required' ] > >
150
150
:
151
151
p [ 'anyOf' ] extends ReadonlyArray < Schema > ? never : // see CONTRIBUTING.md
152
152
p [ 'allOf' ] extends ReadonlyArray < Schema > ? UnionToIntersection < UnionSchemaType < p [ 'allOf' ] > > :
0 commit comments