diff --git a/src/misc/schema.ts b/src/misc/schema.ts index f6fb128751..90d4c3b715 100644 --- a/src/misc/schema.ts +++ b/src/misc/schema.ts @@ -50,7 +50,7 @@ export const refs = { export interface Schema extends SimpleSchema { properties?: Obj; ref?: keyof typeof refs; -}; +} type NonUndefinedPropertyNames<T extends Obj> = { [K in keyof T]: T[K]['optional'] extends true ? never : K @@ -63,7 +63,7 @@ type UndefinedPropertyNames<T extends Obj> = { type OnlyRequired<T extends Obj> = Pick<T, NonUndefinedPropertyNames<T>>; type OnlyOptional<T extends Obj> = Pick<T, UndefinedPropertyNames<T>>; -export interface Obj extends SimpleObj { [key: string]: Schema }; +export interface Obj extends SimpleObj { [key: string]: Schema; } export type ObjType<s extends Obj> = { [P in keyof OnlyOptional<s>]?: SchemaType<s[P]> } & diff --git a/src/misc/simple-schema.ts b/src/misc/simple-schema.ts index 83590edbf2..abbb348e24 100644 --- a/src/misc/simple-schema.ts +++ b/src/misc/simple-schema.ts @@ -10,6 +10,6 @@ export interface SimpleSchema { ref?: string; enum?: string[]; default?: boolean | null; -}; +} -export type SimpleObj = { [key: string]: SimpleSchema }; +export interface SimpleObj { [key: string]: SimpleSchema; }