[英]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 import
或export
制作foo.ts
和bar.ts
模块,那么Person
类将不再是全局的。
但是,这不能解决以下类似问题: https : //github.com/Microsoft/TypeScript/issues/18232#issuecomment-359200157
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.