export type OptionsToType<T extends Array<{ name: Array<string>, type: keyof TypeMapping }>> = { [K in T[number]['name'][0]]: TypeMapping[Extract<T[number], { name: K }>['type']] } export class CliParser<T> { opts: OptionsToType<T>; constructor() { } }
我得到这个错误:
自 T CliParser ,太宽了 OptionsToType . 您可以通过执行以下操作来限制它:
T
CliParser
OptionsToType
export class CliParser<T extends Array<{ name: Array<string>, type: keyof TypeMapping }>> { opts: OptionsToType<T>; constructor() { } }
Array<{ name: Array<string>, type: keyof TypeMapping }>