Проблема с использованием create-реагировать-приложение + тип сценария + immutable.js - PullRequest
0 голосов
/ 16 апреля 2019

Я недавно заметил, что create-реагировать-приложение теперь поддерживает машинопись, но столкнулся с проблемами при переносе моей существующей кодовой базы, которая использует react-scripts-ts, где большинство моих классов, производных от Record, больше не могут быть построены с ошибками формата: Cannot set on an immutable record. Я обнаружил старую проблему Babel , которая звучит похоже, но я не смог найти никакой документации о том, как настроить Babel, чтобы избежать этой проблемы. Как я могу заставить это работать?

Я использую Immutable.js, как описано здесь , например

import { Record } from 'immutable'

interface PersonProps {
  firstName: string
  lastName: string
}

const defaultPersonProps: PersonProps = {
  firstName: '',
  lastName: '',
}

class Person extends Record(defaultPersonProps) implements PersonProps {
  public readonly firstName!: string
  public readonly lastName!: string

  public constructor(values: PersonProps) {
    super(values)
  }
}

См. выпуск github

1 Ответ

0 голосов
/ 04 июня 2019

без проверки, поможет ли рефакторинг вашего кода для следующей помощи?

import { Record } from 'immutable'

interface PersonProps {
  firstName: string
  lastName: string
}

const personPropsRecord = Record({
  firstName: '',
  lastName: '',
});

class Person extends personPropsRecord implements PersonProps {
  public readonly firstName!: string
  public readonly lastName!: string

  public constructor(values: PersonProps) {
    super(values)
  }
}
...