#typescript
#typescript
Вопрос:
У меня есть декоратор sequelizeModel
для моего класса Account
, но когда я пытаюсь скомпилировать код TS в JS, я получаю эту ошибку: src/models/Account.ts(3,93): error TS1005: '?' expected.
Ошибка указывает на определение функции декоратора <Account extends Model>(target: Account extends Model)
Код:
import { Model, DataTypes } from 'sequelize';
const sequelizeModel: ClassDecorator = <Account extends Model>(target: Account extends Model) => {
return target;
}
const column = function (options: any) {
return function (target: Object, propertyKey: string | symbol): void {
Reflect.defineMetadata('model:column', {[propertyKey]: options}, target)
}
}
@sequelizeModel
export class Account extends Model<Account, Partial<Account>> {
@column({
field: 'uuid',
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
})
uuid: string;
@column({
field: 'account_name',
type: DataTypes.STRING(256),
})
accountName: string;
}
Ответ №1:
extends
Часть должна находиться только внутри <>
s:
const sequelizeModel: ClassDecorator = <Account extends Model>(target: Account) => {