【发布时间】:2017-03-10 01:51:52
【问题描述】:
有人能解释一下为什么下面的代码在打字稿中编译,理想情况下如何防止它这样做吗?
class Foo {}
function bar(f : Foo) {
console.log(f)
}
bar("lol wat?")
编辑: 这只是一个快速编辑来解释我为什么遇到这个问题,希望能节省一些未来的人一些时间。 我定义了一个类型
type Message = MySubMessageType | SomeImportedConfigMessageType
SomeImportedConfigMessageType 被允许为空对象,因此我定义的任何接收我的一条消息的方法都可以接收任何东西。
【问题讨论】:
-
它们是......只是你的 Foo 类实际上是一个空对象,可以被任何东西输入。 :)
-
如果你向它添加一个属性或方法,你也会得到错误。 :)
标签: typescript types typescript-typings typescript2.0