我为一个库编写了声明文件(这给类增加了一些行为),但是我不知道要返回什么类型?
class Model {
prototype: any;
static find(id: number): number {
return id;
}
save(): boolean {
return true;
}
}
function foo<M extends Model>(model: M) { // What type to return ?
model.prototype.create = function (): void {
// do something
};
model.findAll = function (): number[] { // Error Property 'findAll' does not exist on type 'M'.
return [1, 2, 3];
}
return model;
}
class NewModel {
create(): void;
static findAll(): number[];
}
function foo<M extends Model>(model: M): NewModel { ... }
但是它期望NewModel的实例,但是我需要该类;
如果“父”类型上不存在属性,我如何扩展对象?