【发布时间】:2018-08-08 00:10:08
【问题描述】:
我一直在尝试为 JavaScript 项目设置一些 .d.ts 定义,以向 Intellij IDEA 添加自动完成功能。
我试图定义的 JavaScript 代码示例是:
var testObj = {
tests: function (it) {
it("Should...", function (screen) {
})
}
};
'screen'回调参数应该有自动完成的地方。
我通过添加一些链接到 .d.ts 接口的 JSDoc cmets 成功地做到了这一点:
var testObj = {
/** @param {function(*,function(TestNamespace.IScreen))} it */
tests: function (it) {
it("Should...", function (screen) {
})
}
};
和
var testObj = {
tests: function (it) {
it("Should...",
/** @param {TestNamespace.IIt} it */
function (screen) {
})
}
};
第一个解决方案的问题是它看起来过于复杂,我相信它可以用/** @param {TestNamespace.IIt} it */ 之类的东西来简化,但是当链接到这个界面时,“屏幕”对象会失去所有相关的自动完成功能..
第二种解决方案的问题是,我必须对创建的每个“it”块重复注释。
所以我想要的是能够使用第一个解决方案,但没有冗长而复杂的 JSDoc 注释,而是使用直接链接到TestNamespace.IIt 接口的更短的 JSDoc 注释。我在想我在 IIt 接口定义上犯了一个错误,但我似乎无法弄清楚我做错了什么。希望我想要的都是可能的。任何帮助将不胜感激!
我拥有的当前 .d.ts 文件的简化版本是:
export = TestNamespace;
declare namespace TestNamespace {
export interface IIt {
(description: string, callback: (screen: IScreen) => void): void
}
export interface IScreen {
doSomething(): void
}
}
【问题讨论】:
标签: javascript typescript intellij-idea jsdoc