#loopbackjs #loopback4
#loopbackjs #loopback4
Вопрос:
Я хочу добавить createdAt и updatedAt к каждой модели в loopback 4
не удается найти имя ‘MixinTarget’.
Тип параметра ‘T’ экспортируемой функции имеет или использует частное имя ‘MixinTarget’.
Если я попытаюсь использовать документацию выше, возникает ошибка.
Комментарии:
1. можете ли вы предоставить ссылку на документацию, на которую вы ссылаетесь?
2. loopback.io/doc/en/lb4/migration-models-mixins.html в этом «циклическом подходе 4»
Ответ №1:
Чтобы решить эту проблему, я не использовал подход mixin. Я добавил следующие поля в свою модель.
@property({
type: 'date',
default: () => new Date(),
postgresql: {
columnName: 'updated_at',
},
})
updatedAt?: Date;
Он должен работать так, как ожидалось
Комментарии:
1. о, хорошо, спасибо за ответ, но просто хотел посмотреть, как mixin работает в loopback 4
Ответ №2:
MixinTaget
должно быть импортировано из @loopback/core
:
import {MixinTarget} from '@loopback/core';
import {Class} from '@loopback/repository';
export function TimeStampMixin<T extends MixinTarget<object>>(baseClass: T) {
return class extends baseClass {
// add a new property `createdAt`
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
public createdAt: Date;
constructor(...args: any[]) {
super(args);
this.createdAt = new Date();
}
printTimeStamp() {
console.log('Instance created at: ' this.createdAt);
}
};
}
Дальнейшее чтение
На момент написания этого ответа документы не обновлялись, чтобы отразить последние разъяснения.