繁体   English   中英

Typescript不会抱怨缺少导入

[英]Typescript doesn't complain about missing imports

foo.ts的内容:

let a: Person = new Person();

bar.ts的内容:

class Person {}

tsconfig.json文件包含由tsc --init创建的默认值集。

我正在使用打字稿版本2.6.2。

上面的代码可以编译,而不会出现有关未定义Person错误。 如果我在foo.ts中将Person重命名为Persons ,则会引发错误,提示cannot find name 'Persons' 因此,就好像它以某种方式自动导入此文件一样。

另请注意,我没有在bar.ts中导出Person类。 如果我确实添加了export语句,那么一切都会正常进行-我收到一条错误消息,提示cannot find name 'Person'

有人知道这是怎么回事吗? 这是用户错误吗?

编辑:

也许这在浏览器中是有意义的,但是对我来说,这种行为在node.js应用程序中是没有意义的。 是否有禁止这种行为的Typescript标志?

您的bar.ts不是模块,因为它没有任何导入或导出。 因此,它定义了一个全局Person类,由于它是全局的,因此不需要导入。 导出它,TypeScript将抱怨缺少导入。

编译器标志--isolatedModules将确保所有.ts文件都是模块。 一旦通过添加1 importexport制作foo.tsbar.ts模块,那么Person类将不再是全局的。

但是,这不能解决以下类似问题: https : //github.com/Microsoft/TypeScript/issues/18232#issuecomment-359200157

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM