如何故意在打字稿中定义一个“空接口”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何故意在打字稿中定义一个“空接口”相关的知识,希望对你有一定的参考价值。
TypeScript允许检查是否检查未知属性。下列
interface MyInterface {
key: string
}
const myVar: MyInterface = {
asda: 'asdfadf'
}
会失败的
输入'{asda:string; }'不能赋值为'MyInterface'。 对象文字只能指定已知属性,'myInterface'类型中不存在'asda'。
但是,此语句将编译没有任何问题。 Empty interface will accept any value
interface EmptyInterface {
}
const myVar: EmptyInterface = {
asda: 'asdfadf'
}
但是,如果我真的想为可能没有任何属性的空对象定义类型,该怎么办?我怎样才能在打字稿中实现这一目标?
答案
要定义从不拥有任何成员的接口,可以定义返回never
的索引器
interface None { [n: string]: never }
// OK
let d2 : None = {
}
let d3 : None = {
x: "" // error
}
以上是关于如何故意在打字稿中定义一个“空接口”的主要内容,如果未能解决你的问题,请参考以下文章