提问人:ahocevar 提问时间:11/15/2023 更新时间:11/15/2023 访问量:24
类原型的 TypeScript/JSDoc 泛型作为另一个类的属性
TypeScript/JSDoc generics for class prototype as property of another class
问:
我有一个类,其中包含创建已配置原型实例的方法:
class A {}
class B {}
/**
* @typedef {Object} Options
* @property {typeof A|typeof B} type
*/
class Foo {
/**
* @param {Options} options
*/
constructor(options) {
/** @type {typeof A|typeof B} */
this.type = options.type;
}
/**
* @returns {A|B}
*/
create() {
return new this.type();
}
}
const foo = new Foo({type: A});
const created = foo.create();
这工作正常,但现在我想使类通用,使 create() 方法的返回类型由传递给构造函数的选项确定。type
我尝试了以下方法,但没有成功:
/**
* @template {A|B} Type
*/
class Foo {
/**
* @param {Options} options
*/
constructor(options) {
/** @type {typeof Type} */
this.type = options.type;
}
/**
* @returns {Type}
*/
create() {
return new this.type();
}
}
问题出在本节:
/** @type {typeof Type} */
this.type = options.type;
不接受,并出现以下错误:@type {typeof Type}
“Type”仅指一种类型,但在此处用作值。(2693)
答: 暂无答案
评论