TypeScript允许检查是否检查未知属性。以下
interface MyInterface {
key: string
}
const myVar: MyInterface = {
asda: 'asdfadf'
}
将失败
输入'{asda:string; }'不能指定为'MyInterface'类型。
对象文字只能指定已知属性,而'asda'则不能 存在于'MyInterface'类型中。
但是,此语句将编译没有任何问题。 Empty interface will accept any value
interface EmptyInterface {
}
const myVar: EmptyInterface = {
asda: 'asdfadf'
}
但是,如果我真的想为可能没有任何属性的空对象定义类型,该怎么办?我怎样才能在打字稿中实现这一目标?
答案 0 :(得分:5)
要定义一个从不拥有任何成员的接口,您可以定义一个返回never
的索引器
interface None { [n: string]: never }
// OK
let d2 : None = {
}
let d3 : None = {
x: "" // error
}