我的打字稿产生一个.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魔法?(告诉VS内部myhmi是外部myhmi的扩展吗?
编辑:几天后报告为https://github.com/microsoft/typescript/issues/21877
我得到了Microsoft的答案。这有效:
(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()