Javascript 带有回调参数的函数的TypeScript.d.ts定义不';t在Intellij IDEA中提供自动完成

Javascript 带有回调参数的函数的TypeScript.d.ts定义不';t在Intellij IDEA中提供自动完成,javascript,typescript,intellij-idea,jsdoc,Javascript,Typescript,Intellij Idea,Jsdoc,我一直在尝试为一个JavaScript项目设置一些.d.ts定义,以将自动完成添加到Intellij IDEA中 我试图定义的JavaScript代码的一个示例是: var testObj = { tests: function (it) { it("Should...", function (screen) { }) } }; 其中“screen”回调参数应具有自动完成功能 通过添加一些链接到.d.ts接口的JSDoc注释,我成功地做到了这一

我一直在尝试为一个JavaScript项目设置一些.d.ts定义,以将自动完成添加到Intellij IDEA中

我试图定义的JavaScript代码的一个示例是:

var testObj = {
    tests: function (it) {
        it("Should...", function (screen) {

        })
    }
};
其中“screen”回调参数应具有自动完成功能

通过添加一些链接到.d.ts接口的JSDoc注释,我成功地做到了这一点:

var testObj = {
    /** @param {function(*,function(TestNamespace.IScreen))} it */
    tests: function (it) {
        it("Should...", function (screen) {

        })
    }
};

第一种解决方案的问题是它看起来过于复杂,我相信可以用类似
/**param{TestNamespace.IIt}it*/
的东西来简化它,但是当链接到此接口时,“screen”对象会丢失所有相关的自动完成

第二种解决方案的问题是,我必须在创建的每个“it”块上重复注释

因此,我想要的是能够使用第一个解决方案,但不需要长而复杂的JSDoc注释,而是使用一个较短的JSDoc注释,直接链接到
TestNamespace.IIt
接口。我认为我在IIt接口定义上犯了一个错误,但我似乎无法找出我做错了什么。希望我想要的是可能的。任何帮助都将不胜感激

我拥有的当前.d.ts文件的简化版本是:

export = TestNamespace;
declare namespace TestNamespace {
    export interface IIt {
        (description: string, callback: (screen: IScreen) => void): void
    }

    export interface IScreen {
        doSomething(): void
    }
}

您可以将接口指定为类型参数,而不使用jsdoc:

var testObj = {
    tests: function(it) {
        it('Should...', function(screen: TestNamespace.IScreen) {});
    }
};

我的主要项目代码使用JavaScript,而不是TypeScript,我没有切换的能力。我正试图使用TypeScript定义文件将代码完成添加到我的JavaScript项目中,因此我将不得不在某个时候使用JSDoc。
var testObj = {
    tests: function(it) {
        it('Should...', function(screen: TestNamespace.IScreen) {});
    }
};