Определение типов потоков для и создание неизменяемых записей

Я пытаюсь заставить Flow работать с Immutable.js Records.

Я определяю свою запись как:

const MyRecord = new Immutable.Record({id: undefined})

а затем создание записей с

new MyRecord({id: 1})

Когда я запускаю Flow, я получаю сообщение об ошибке при вызове конструктора new MyRecord, в котором говорится:

вызов конструктора Конструктор не может быть вызван для записи

Я неправильно определяю запись? Или мне нужно как-то указать тип для конструктора?

Я использую flow-bin 0.33.0 и immutable 3.8.0 внутри проекта React Native 0.38.0.

Спасибо!


person Jake    schedule 21.12.2016    source источник
comment
Будет ли работать, если вы измените new Immutable.Record на Immutable.Record без new?   -  person loganfsmyth    schedule 21.12.2016
comment
Вы пытаетесь вызвать конструктор уже созданного объекта. Record создает новый класс, не создавая объект. Удалите новое ключевое слово из первого оператора.   -  person Chase    schedule 21.12.2016
comment
Ах да, это было. Я могу export default Immutable.Record({id: undefined}), верно? Спасибо за помощь. Отправьте повторно как ответ, и я приму его.   -  person Jake    schedule 21.12.2016
comment
@Джейк готово. ответ ниже   -  person Chase    schedule 21.12.2016


Ответы (1)


Вы пытаетесь вызвать конструктор уже созданного объекта. Record создает новый класс, не создавая объект. Удалите ключевое слово new из первого оператора, и он должен работать.

person Chase    schedule 21.12.2016
comment
Это заканчивается Callable signature not found in Record на объектах, возвращаемых Record(). - person Kyle Kelley; 13.01.2017
comment
Точнее, если запись устанавливает тип, подобный export const DocumentRecord: Immutable.Record<Document> = Immutable.Record({...}), она терпит неудачу. - person Kyle Kelley; 13.01.2017