Свойства не могут быть определены непосредственно в классах модели.
Основная причина кроется в предустановке babel create-Reaction-app - в результате транспиляции вводятся дополнительные дескрипторы свойств в Модель Прототип цепи.
Эти свойства мешают дескрипторам, установленным redux-orm во время регистрации схемы, что приводит к ошибке Maximum call stack size exceeded
.
Этого можно избежать путем объединения объявлений, в частности, путем предоставлениякласс и интерфейс с соответствующими именами.Интерфейс содержит Model
свойств, класс почти от 1: 1 до определения JS Model
.
Пример:
interface Book {
id: number
title: string
}
class Book extends Model<typeof Book> {
static modelName = 'Book' as const
static fields = {
id: attr(),
title: attr()
}
}
Я создал репозиторий с рабочим примером: https://github.com/tomasz-zablocki/redux-orm-ex-types-react-example
Имейте в виду, что это нестандартные типы, но я определенно хочу взять пакет @types/redux-orm
, вероятно, с выпуском 0.14 redux-orm
.