使用javascript进行封闭参数的VS 2017 Intellisense

时间:2018-02-08 13:36:49

标签: javascript typescript visual-studio-2017 jsdoc languageservice

我的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

1 个答案:

答案 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()