Angular 7.2.5 + Typescript 3.2.4: Невозможно прочитать свойство 'aaa' из неопределенного - PullRequest
0 голосов
/ 15 марта 2019

У меня есть следующие строки кода:

if ((this.axes.x && this.axes.x.property === 'run_number') ||
        (this.axes.y && this.axes.y.property === 'run_number')) {
        this.buildLineGraph(this.axes.y.property === 'run_number');
    } else {
        this.buildScatterGraph();
    }

большую часть времени работает без проблем, но время от времени происходит сбой, если какой-либо элемент в цепочках:

this.axes.x.property

this.axes.y.property

дает ошибку:

Невозможно прочитать свойство 'aaa' из неопределенного

с неопределенным элементом aaa: оси, x, y и т. Д.

Как проверить каждый возможный неопределенный элемент? Нужна ли длинная цепочка вложенного оператора if?

1 Ответ

0 голосов
/ 15 марта 2019

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

if (this && this.axes && this.axes.x && this.axes.y && this.axes.x.property && this.axes.y.property) {
        if ((this.axes.x && this.axes.x.property === 'run_number') ||
            (this.axes.y && this.axes.y.property === 'run_number')) {
            this.buildLineGraph(this.axes.y.property === 'run_number');
        } else {
            this.buildScatterGraph();
        }
    }
...