相关疑难解决方法(0)

在JSDOC中记录泛型类型参数

JSDoc存在记录的确切类型的数组的内容的可能性这样的:

/** @param {Array.<MyClass>} myClasses An array of MyClass objects. */
TestClass.protoype.someMethod = function( myClasses ){
   myClasses[0].aMethodOnMyClass();
}
Run Code Online (Sandbox Code Playgroud)

这使得像WebStorm这样的IDE中的代码完成实际上提供了正确的类型信息[0]..这适用于Array类型,但是我有自己的集合类型,我也想使用这个功能.问题是我找不到合适的语法(可能因为没有,但是).我希望能够以某种方式宣布我的课程如下:

/**
 * @typeparam {T} the type parameter
 * @constructor {Test2.<T>}
 * */
Test2 = function(){};

/**
 * @returns {T} a value of type T, where T is the generic type parameter of Test2
 */
Test2.prototype.getGenericValue = function(){}
Run Code Online (Sandbox Code Playgroud)

这个语法或功能不适用于我的IDE,这里没有列出,所以我想知道这个用例的语法是用于WebStorm还是任何其他JS创作工具.

javascript jsdoc webstorm

13
推荐指数
2
解决办法
1万
查看次数

是否可以约束jsDoc @template声明中定义的泛型类型?

我们想使用jsDoc注释而不是.ts文件在常规.js文件中定义mixin类.

mixin类的一个重要方面是将泛型类型参数约束为类构造函数extends.例如,上面的页面包含以下TypeScript:

type Constructor<T> = new(...args: any[]) => T;
function Tagged<T extends Constructor<{}>>(Base: T) { ... }
Run Code Online (Sandbox Code Playgroud)

TypeScript的jsDoc支持允许@template T声明,但是我们没有看到任何方法来约束T,例如,是一个类构造函数.有办法做到这一点吗?

我们愿意创建/使用.d.ts文件来支持这一点,只要mixin声明本身可以存在于.js文件中,并且checkJs将适当地键入 - 检查该.js文件的工作方式.

generics mixins typescript

5
推荐指数
1
解决办法
745
查看次数

标签 统计

generics ×1

javascript ×1

jsdoc ×1

mixins ×1

typescript ×1

webstorm ×1