У меня странная проблема с аннотациями MobX, когда аннотированный метод @action
не существует в результирующем объекте.
Если источником моего класса является следующий TypeScript (как минимальный пример):
export class Car {
@observable
public wheels: number = 4;
@action
public selfDestruct() {
this.wheels = 0;
}
}
И я вызываю метод следующим образом:
const car = new Car();
car.selfDestruct();
Я получаю ошибку:
Uncaught TypeError: car.selfDestruct is not a function
Оценка car.selfDestruct()
в консоли возвращает undefined
.
Однако , если я использую действие , функция , все выглядит нормально:
export class Car {
@observable
public wheels: number = 4;
public selfDestruct = action(
() => this.wheels = 0
);
}
const car = new Car();
car.selfDestruct(); // works fine
Для справки, я использую MobX 5.5.2 с TypeScript 3.1.1. Компиляция обрабатывается ParcelJS 1.10.1