TypeScript:共享类型没有智能感知

时间:2016-08-21 20:06:30

标签: typescript typescript1.8 typescript-typings

我正在使用框架,我正在查看属性(称为项目),但它没有给我任何Intellisense。其他一切都有效。在调查了这个属性以理解为什么它没有给我反馈之后我注意到它的设置是这样的

TB.ClosedItem

所以我认为问题是Typescript不知道它是什么类型。最初它是NULL,我实际上调用另一个设置类型的函数,所以我知道类型是什么。

我还在运行时测试了js,它的运行方式应该如此。

有没有给TypeScript提供帮助,所以它可以给我 collectables.item.#No additional properties shown# 的智能感知,因为我知道它是什么。

我想尝试避免更改项目签名,它不属于我,事实是该项目可能是一些事情取决于某些事情。虽然我总是知道它是什么,所以如果我能告诉TypeScript它会是多么好。

我的对象是收藏品,所以我做了

click

所以当我收集和收集时,我会在收集品中获得一长串属性和功能。然后我选择item然后选择一个点,只显示的东西是标准JS,比如HasOwnProperty,Constructor,但没有项目的属性/功能。

1 个答案:

答案 0 :(得分:1)

code example with completion 上面的图片显示,如果您帮助打字稿缩小类型,则完成适用于联合类型(进一步详细说明here)。只要将任何类型添加到定义(| any到第9行),typescript将无法为您提供代码完成。建立联盟是为了帮助取代那些烦人的东西并缩小选项范围。在您的情况下,仅将类型定义为any将等同于BaseItem | ClosedItem | any