我有一个typescript函数,它有一个名为“Model”的泛型类。这个类有一个静态方法“build”。Typescript无法识别该类的静态方法,并向我显示了这个错误。编译后的javasript可以正常工作,没有错误:
export function dataToInstance(model: Model, data: any) {
if (!data) {
return data;
}
const include = generateIncludeRecurse(model);
const instance = model.build(data, { isNewRecord: false, raw: false, include });
restoreTimestamps(data, instance);
return instance;
}
错误:
如何让typescript接受静态方法?我已经试过“typeof”,但是typescript抛出错误,因为model是抽象类。
1条答案
按热度按时间hgc7kmma1#
你似乎是第一次接触typescript。你的函数说它想要接收一个模型,而你想在函数体中对该模型做XYZ。通过说模型的类型是
Model
,我们实际上是告诉typescript每次调用这个函数时,它可以期望model
参数具有Model
类型中指定的所有属性和方法。调查
Model
类型。它看起来像一个接受两个参数的泛型。没有看到Model
,就不可能肯定地说。类型参数可能负责将Model
的基与其他属性/方法相交。这可能不是你的代码,但是类似
Model<{ build: BuildFn }>
的代码可以让typescript知道你正在使用的模型有一个build属性。希望这能在某种程度上帮助你。