【发布时间】:2021-01-20 05:46:52
【问题描述】:
所以我最终决定尝试 TypeScript,因为我听说过关于它的所有内容以及静态类型对我的好处。我决定通过使用 sequelize 创建一个简单的 Web API 来测试它,但我无法理解从 sequelize 返回的类型。所以我有以下导入(请注意,我还安装了 @types/sequelize npm 模块:
import sequelize = require('sequelize');
import {DataTypes} from 'sequelize';
我正在创建这样的模型:
const User:sequelize.Model= db.define('User',{
id: {type:DataTypes.INTEGER, primaryKey:true},
email:{type:DataTypes.STRING, allowNull:false},
hashedPassword:{type:DataTypes.STRING,allowNull:false}
});
但我收到此错误:
Type 'ModelCtor<Model<any, any>>' is missing the following properties from type 'Model<any,any>': _attributes, _creationAttributes, isNewRecord, where, and 16 more.
但如果我这样做:
const User:any= db.define('User',{
id: {type:DataTypes.INTEGER, primaryKey:true},
email:{type:DataTypes.STRING, allowNull:false},
hashedPassword:{type:DataTypes.STRING,allowNull:false}
});
它工作正常。但是当然,因为这是 TypeScript,所以我想利用 Types。使用“any”会破坏目的。我怎么知道我应该为我的模型使用哪种类型?不幸的是,大多数 sequelize 的文档都是普通的 javascript,所以我找不到这样的例子。任何帮助表示赞赏。
【问题讨论】:
标签: node.js typescript sequelize.js