![](/img/trans.png)
[英]Types of parameters '__0' and 'value' are incompatible - Typescript
[英]Sequelize / Typescript: Types of parameters 'values' and 'values' are incompatible
我正在尝试创建一个BaseModel
,从中继承我的所有模型。 我还尝试创建一个单独的method()
函数,该函数可以将我的任何模型作为参数。
这是我的示例代码:
import {
Model, Optional
} from 'sequelize'; // v6.3.5
interface DefaultAttributes {
id: number;
}
interface TestAttributes extends DefaultAttributes {
field: number;
}
class BaseModel<T extends DefaultAttributes> extends Model<T, Optional<T, 'id'>> {
static test() {
}
}
class MyModel extends BaseModel<TestAttributes> {
}
function method<T extends typeof BaseModel>(model: T) {
model.test();
}
method(MyModel) // <<<<<< TypeScript ERROR
我已经尝试按照文档描述的那样做所有事情。 https://sequelize.org/master/manual/typescript.html
我收到以下打字稿错误:
TS2345:“typeof MyModel”类型的参数不可分配给“typeof BaseModel”类型的参数。 参数“值”和“值”的类型不兼容。 类型 'Optional<T, "id">' 不能分配给类型 'Optional<TestAttributes, "id">'。 'Optional<T, "id">' 类型中缺少属性 'field',但在类型 'Pick<TestAttributes, "field">' 中是必需的。
请有人帮助我我做错了什么,或者我如何创建一个可以接收从BaseModel
继承的任何UniqueModel
的方法?
尝试这个:
import {
Model, Optional
} from 'sequelize'; // v6.3.5
interface DefaultAttributes {
id: number;
}
interface TestAttributes extends DefaultAttributes {
field: number;
}
class BaseModel<T extends DefaultAttributes> extends Model<T, Optional<T, 'id'>> {
static test() {
}
}
class MyModel extends BaseModel<TestAttributes> {
}
function method<T extends BaseModel>(model: T) {
model.test();
}
method(MyModel)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.