Typescript TypeError с es2022, но не с es2021

Я пытаюсь обновить целевое свойство файла tsconfig.json с es2015 на es2022. Но я получаю сообщение об ошибке при запуске тестов, которые, я думаю, используют только tsc без Babel:

Chrome Headless 110.0.5481.177 (Mac OS 10.15.7) Ошибка типа: невозможно прочитать свойства неопределенного значения (чтение «getSomeValue»)

Код, вызывающий эту проблему:

      export class MyService {
    private xyz$ = this.otherService.getSomeValue().pipe(...

    constructor(private readonly otherService: SettingsService) {}
}

Я предполагаю, что ошибка связана с новыми функциями полей классов, представленными в es2022? Но я не понимаю, почему здесь должна быть проблема? С es2021 все работает нормально.

Я не уверен, поможет ли tsconfig.json?

      {
    "compileOnSave": false,
    "compilerOptions": {
        "baseUrl": "./",
        "outDir": "./dist/out-tsc",
        "sourceMap": true,
        "declaration": false,
        "downlevelIteration": true,
        "experimentalDecorators": true,
        "moduleResolution": "node",
        "importHelpers": true,
        "target": "es2022",
        "module": "es2022",
        "resolveJsonModule": true
    }
}

1 ответ

Вот две связанные проблемы:

Насколько я понимаю, ожидается, что доступ к свойству параметра конструктора в свойстве класса завершится неудачно сuse-before-init, но компилятор машинописного текста в настоящее время не выдает эту ошибку.

      class Test {
  // constructor that sets a field
  constructor(private param: Param){
  }

  // this is expected to fail - this.param is NOT assigned yet
  a = this.param.a;
}
Другие вопросы по тегам