@gofi

Как правильно типизировать регулярку при деструктуризации?

Как правильно типизировать регулярку при деструктуризации?
const [a, b, c, d, f, g= ''] = value.match(/\d+/g);
TS ругается на Type 'RegExpMatchArray | null' is not an array type or a string type. Use compiler option '--downlevelIteration' to allow iterating of iterators.
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
А вы уверены, что он будет не null?
Если да, то можно просто сообщить об этом компилятору:
const [a, b, c, d, f, g= ''] = value.match(/\d+/g)!;


Но по хорошему надо бы проверять на null. Хотя бы так:
const [a, b, c, d, f, g= ''] = value.match(/\d+/g) || [];
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Ну, тебе прямым текстом сказано: match может вернуть null и тогда произойдёт ошибка во время исполнения.

Либо так:
const [a, b, c, d, f, g= ''] = value.match(/\d+/g) || [];
Либо, если ты на 146% уверен, что match обязательно что-нибудь найдёт:
const [a, b, c, d, f, g= ''] = value.match(/\d+/g) as string[];
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы