在之前的文章介紹當中博主是在 Egg-Ts 的項目當中使用的就是 JS 來操作 Sequelize 的來進行使用的,但是博主目前要介紹的這個項目是 TS 項目,如果在使用 JS 的方式來進行使用的話會顯得不夠專業,那么這個時候我們就可以使用 TS 版本的 sequelize 來進行使用,博主找了幾個網站也就是幾個插件幾個庫就能完成轉換到 TS 的版本,第一個就是 ts 版本的 sequelize,npm 地址:https://www.npmjs.com/package/sequelize-typescript

第二個庫就是在 GitHub 當中的一個 egg-sequelize-ts 官方地址:https://github.com/stone-lyl/egg-sequelize-ts 介紹完畢了之后接下來就可以上代碼了。
安裝依賴
npm install sequelize-typescript
npm i --save egg-sequelize-ts
配置
- Enable plugin in
config/plugin.js - 在
config/plugin.js文件中引入egg-sequelize-ts組件
// 開啟sequelize-typescript
sequelize: {
enable: true,
package: 'egg-sequelize-ts',
}
例子
修改之前編寫的 model 當中的 user.ts:
/**
* @desc 用戶表
*/
import {AutoIncrement, Column, DataType, Model, PrimaryKey, Table} from 'sequelize-typescript';
@Table({
modelName: 'user'
})
class User extends Model<User> {
@PrimaryKey
@AutoIncrement
@Column({
type: DataType.INTEGER,
comment: '用戶ID',
})
id: number;
@Column({
comment: '用戶姓名',
})
name: string;
@Column({
type: DataType.INTEGER,
comment: '年齡',
})
age: number;
@Column({
field: 'created_at'
})
createdAt: Date;
@Column({
field: 'updated_at'
})
updatedAt: Date;
}
export default () => User;
直接啟動項目,然后訪問即可:http://127.0.0.1:7006/

注意點,如果你出現報錯等等問題,你可以試着按照我如下的步驟進行解決:
- 更改 Node 版本與博主的一致,
12.13.0 - 更改 package.json 的版本與博主的一致
"dependencies": {
"egg": "^2.6.1",
"egg-scripts": "^2.6.0",
"egg-sequelize": "^5.2.2",
"egg-sequelize-ts": "^0.2.3-0",
"mysql2": "^2.1.0",
"sequelize-typescript": "^1.1.0"
},
"devDependencies": {
"@types/mocha": "^2.2.40",
"@types/node": "^7.0.12",
"@types/supertest": "^2.0.0",
"autod": "^3.0.1",
"autod-egg": "^1.1.0",
"egg-ci": "^1.8.0",
"egg-bin": "^4.11.0",
"egg-mock": "^3.16.0",
"tslib": "^1.9.0",
"eslint": "^6.7.2",
"eslint-config-egg": "^8.0.0",
"typescript": "^3.0.0"
},
"engines": {
"node": ">=8.9.0"
},
"ci": {
"version": "8"
},
"repository": {
"type": "git",
"url": ""
},
"eslintIgnore": [
"coverage"
],
"author": "",
"license": "MIT"
