接口对象无法扩展Record <string,unknown>

时间:2020-10-31 11:56:49

标签: typescript

为什么界面无法扩展Record

interface Data {
  a: string
}

Data extends Record<string, unknown> ? 'yes' : 'no' // 'no'

但是,如果我将数据更改为键入,则可以正常工作

type Data {
  a: string
}
 
Data extends Record<string, unknown> ? 'yes' : 'no' // 'yes'

1 个答案:

答案 0 :(得分:2)

type T = Record<string, unknown>的值为{ [x: string]: unknown; }

对象类型具有implicit index signature,但接口没有(for safety reasons),因此它们不会扩展索引类型。