const x: {} = {a:1}
上面的代码编译。我如何只接受一个空对象:{}
?
{}
接受包含多个key
的任何对象。我正在寻找一种声明仅接受对象而没有任何键的类型的方法。答案 0 :(得分:2)
您可以使用never
来强制对象为空:
type Empty = { [key: string]: never }
答案 1 :(得分:1)
我认为这是不可能的,因为即使在强类型语言中,您也不能限制接受更多派生的类型。
您在这里基本上是(在幕后)说x
应该至少是{}
类型。
因此,我在这里看到一些选择:
null
或undefined
Option
类型,该类型要么具有值,要么不具有值,这是解决返回值或失败的问题的一种更实用的方法。 This has more info on the topic. 编辑:Phillip提供了实现方法,所以我的猜测是错误的。但是我仍然不建议您尽可能使用它。