【问题标题】:Typescript- how to get the type of certain key on object?Typescript-如何获取对象上某个键的类型?
【发布时间】:2023-01-16 22:08:46
【问题描述】:
const map ={
  a:1,
  b:'Hello world',
  c:()=>99,
  d:()=>'Love',
  e:()=>'adoration'
}

type LoveFunctionNameInString = keyof map & ?

const result: LoveFunctionNameInString = 'd' | 'e'

我想要一个指向 'map' 对象中字符串返回类型方法的类型,所以每当我将类型 'LoveFunctionNameInString' 分配给变量时,Typescript 只会建议我 'd' | 'e'(因为它们是字符串返回类型的函数)没有 'a' | 'b' | 'C'。

【问题讨论】:

    标签: javascript typescript types


    【解决方案1】:

    受此启发 answer
    这是你的工作代码 -

    const map ={
      a:1,
      b:'Hello world',
      c:()=>99,
      d:()=>'Love',
      e:()=>'adoration'
    }
    
    type KeysMatching<T, V> = NonNullable<
      { [K in keyof T]: T[K] extends V ? K : never }[keyof T]
    >;
    
    type LoveFunctionNameInString = KeysMatching<typeof map, () => string>;
    

    【讨论】:

      猜你喜欢
      • 2022-09-30
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      相关资源
      最近更新 更多