rin*_*t.6 3 sequelize.js typescript
使用 TypeScript 时,在 Sequelize 模型this.getDataValue的getter 函数中使用的正确方法是什么?
这是我得到的错误:
类型 'string | 上不存在属性 'getDataValue' 数据类型摘要 | 定义属性列选项'。
“字符串”类型不存在属性“getDataValue”。
我的模型定义:
import * as Sequelize from 'sequelize';
import sequelize from '../db-connection';
export interface IUserAttributes {
date_of_birth: Date;
name: string;
}
export interface IUserInstance extends Sequelize.Instance<IUserAttributes> {
date_of_birth: Date;
name: string;
}
const User = sequelize.define<IUserAttributes, IUserInstance>('user', {
name: {
type: Sequelize.STRING,
validate: {
notEmpty: true,
},
},
date_of_birth: {
get(): Date {
return new Date(this.getDataValue('date_of_birth'));
},
type: Sequelize.DATEONLY,
validate: {
isDate: true,
notEmpty: true,
},
},
});
export default User;
Run Code Online (Sandbox Code Playgroud)
您需要this在 getter 函数中指定类型
const User = sequelize.define<IUserAttributes, IUserInstance>('user', {
name: {
type: Sequelize.STRING,
validate: {
notEmpty: true,
},
},
date_of_birth: {
get(this: IUserInstance): Date {
return new Date(this.getDataValue('date_of_birth'));
},
type: Sequelize.DATEONLY,
validate: {
isDate: true,
notEmpty: true,
},
},
});
Run Code Online (Sandbox Code Playgroud)
注意:该this参数将不会排放到JS它只是为打字稿编译器的好处。
| 归档时间: |
|
| 查看次数: |
5608 次 |
| 最近记录: |