我的TypeScript生成.d.ts文件。这对于TS项目来说是完美的:
declare function myGlobal(html: string): string;
declare module myHmi {
class bla {
static myStatic(bla: string): string;
}
}
但是其他团队都在使用JS,并希望使用我们的好文章。 他们在项目中有.d.ts文件。 VS2017在新的JS语言服务(Salsa)中检测到它。
var myHmi;
(function (myHmi) {
// Here VS2017 knows myGlobal()
// Here VS2017 detected myHmi as any. So it has no knowledge of myHmi.bla.myStatic()
main code...
})(myHmi || (myHmi = {}));
// Here VS2017 knows myGlobal()
// Here VS2017 knows myHmi.bla.myStatic()
我们可以使用提示(@jsdoc magic?)来告诉VS内部myHmi是外部myHmi的扩展吗?
修改:几天后报告https://github.com/Microsoft/TypeScript/issues/21877
答案 0 :(得分:0)
我得到了微软的回答。这有效:
(function (myHmi) {
// Here VS2017 knows myGlobal()
// Here VS2017 knows myHmi.bla.myStatic()
main code...
})(myHmi);
// Here VS2017 knows myGlobal()
// Here VS2017 knows myHmi.bla.myStatic()