Javascript 带有回调参数的函数的TypeScript.d.ts定义不';t在Intellij IDEA中提供自动完成
我一直在尝试为一个JavaScript项目设置一些.d.ts定义,以将自动完成添加到Intellij IDEA中 我试图定义的JavaScript代码的一个示例是: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注释,我成功地做到了这一
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) {});
}
};