代码之家  ›  专栏  ›  技术社区  ›  Alexander Mills

将泛型类型与类类型T一起使用不满足约束

  •  0
  • Alexander Mills  · 技术社区  · 6 年前
    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() {
    
      }
    
    }
    

    我得到这个错误:

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  4
  •   Jclangst    6 年前

    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 }>

    推荐文章