【问题标题】:How do you use a keyof value in parameter to define the type of another parameter based on an interface如何使用参数中的keyof值根据接口定义另一个参数的类型
【发布时间】:2020-09-17 20:02:47
【问题描述】:

如果您有一个简单的函数,其中一个参数是接口的键,而另一个参数基于该键。如何键入值以强制键入而不是使用 any?

interface Config {
    name?: string
    ttl?: number
}

const config: Config = {}

function setConfig(
    key: keyof Config,
    // What typing is needed here to avoid any type
    // This should be either string or number depending on the value of key
    val: any
) {
    config[key] = val
}

【问题讨论】:

    标签: typescript


    【解决方案1】:
    
    function setConfig<K extends keyof Config>(key: K, val: Config[K]) {
      config[key] = val
    }
    
    

    【讨论】:

      猜你喜欢
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      • 2014-12-02
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多