如果我将其保存为 test.ts
,则此代码不编译。这是预期的,因为隐藏cantSeeMe
(如果我希望在模块外部看到它,我需要export
。
但是,如果我将文件保存为 test.d.ts
,则编译正常。我也希望它不会编译。
为什么Typescript在编译为定义文件时不遵循相同的封装规则?
module blah {
interface cantSeeMe { a: any; }
}
var variable: blah.cantSeeMe;
答案 0 :(得分:5)
定义文件中的export
关键字是可选的,因为.d.ts文件的整个点是描述您的公共表面区域。