类型 '{}' 不能分配给类型 'Record<Key, Value>'



我有以下代码:

const foo = <Key extends keyof any, Value>() {
  type Rec = Record<Key, Value>
  const a: Rec = {}
}

在第3行,typescript给出了一个错误Type '{}' is not assignable to type 'Record<Key, Value>。为什么会发生这种情况?

在我的例子中,泛型参数是string,可以将空对象分配给Record<string, unknown>
不接受{}的原因是Key参数可以是类似'prop1' | 'prop2'的具体字符串并集类型。在这种情况下,用户被迫将这些属性添加到对象

相关内容

最新更新