#arrays #typescript #undefined
Вопрос:
Я знаю, что есть много вопросов об ошибках «Объект, возможно, не определен» в машинописном тексте, но я не нашел ответа на свой конкретный вопрос. У меня есть массив с элементами, и я хочу получить доступ к элементу по индексу. Я могу поместить проверки для каждой части элемента, к которому я хочу получить доступ, в оператор if вокруг него, но он все равно скажет мне, что он, возможно, не определен.
Мой код выглядит так:
if(this.classLevels amp;amp; this.classLevels[finalLevel] amp;amp; this.classLevels[finalLevel].class){
this.classLevels[finalLevel].class.currentLevel = 1;
}
class
кажется, это то, что может быть неопределенным. Он автоматически хочет поставить там вопросительный знак, например this.classLevels[finalLevel].class?.currentLevel = 1;
, но в этом случае я получаю ошибку, которая The left-hand side of an assignment expression may not be an optional property access
.
Я действительно не хочу отключать строгую неопределенную проверку, но если я не смогу заставить ее работать с элементами в массиве, мне, возможно, придется это сделать. Есть ли что-то, чего мне здесь не хватает?
Ответ №1:
Предполагая, что вы noUncheckedIndexedAccess
включили, лучше всего было бы создать промежуточную переменную:
const finalLevelClass = this.classLevels?.[finalLevel]?.class;
if (finalLevelClass) {
finalLevelClass.currentLevel = 1;
}
Комментарии:
1. Это работает, спасибо. Я не знал, что это происходит из-за другого флага машинописи, чем другая ошибка.