有没有办法告诉TypeScript静态方法返回一个调用方法的对象?
我有这个基类:
export default class model {
public static create() {
let t = new this() as this
// set extra information here
return t
}
}
然后我像这样扩展这个类:
export default class purchases extends model { /* extra methods */ }
然后我这样称呼它:
let p = purchases.create({ my: 'options' })
然后TypeScript告诉我p
的类型为model
,实际上它应该是purchases
类型。
当我将t
投放到this
或说public static create(): this
时,我收到此错误:
A'这个' type仅在类或接口的非静态成员中可用。
我该怎么说#34;这个静态方法返回一个调用它的对象实例"?
答案 0 :(得分:0)
最简单的方法可能是转发实例
class model {
public static create() {
let t = new this();
// set extra information here
return t;
}
}
class purchases extends model { /* extra methods */ }
let p = purchases.create() as purchases; // downcast