Ale*_*lls 5 typescript tsc typescript3.0
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() {
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
有谁知道如何解决这个问题?
由于T可以是任何类型CliParser,所以它太宽泛了OptionsToType。您可以通过执行以下操作来限制它:
export class CliParser<T extends Array<{ name: Array<string>, type: keyof TypeMapping }>> {
opts: OptionsToType<T>;
constructor() {
}
}
Run Code Online (Sandbox Code Playgroud)
确实有点丑。您可能想创建Array<{ name: Array<string>, type: keyof TypeMapping }>自己的类型。
| 归档时间: |
|
| 查看次数: |
12112 次 |
| 最近记录: |