如果您有一个简单函数,其中一个参数是接口的键,而另一个参数则基于该键。您如何键入值以强制键入而不使用任何值?
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
}
答案 0 :(得分:2)
function setConfig<K extends keyof Config>(key: K, val: Config[K]) {
config[key] = val
}