代码之家  ›  专栏  ›  技术社区  ›  Chris

typescript使用键作为字符串的限制

  •  3
  • Chris  · 技术社区  · 6 年前

    我有以下界面:

    interface Address {
       street: string
       town: string
       country: string
    }
    

    我希望函数接受的键参数必须是以下三个字符串之一:

    function useKey(key: "street" | "town" | "country") {
    }
    

    我可以从接口生成键参数的类型吗?

    2 回复  |  直到 6 年前
        1
  •  4
  •   Titian Cernicova-Dragomir    6 年前

    Typescript具有 keyof 此特定情况的类型运算符:

    function useKey(key: keyof Address ) {
    }
    

    这将为您提供联合中某个类型的所有公钥。

    function getValue<K extends keyof Address>(key: K): Address[K]{
         //...
    }
    
        2
  •  2
  •   Aleksey L.    6 年前

    keyof 操作员:

    type AddressKey = keyof Address