JavaScript полон таких предостережений:
const arr = [1, 2, 3]
for (const i in arr) {
console.log(i + 1)
}
Ожидаемый результат неопытного JS-разработчика будет 1 2 3
, но на самом деле это 01 11 21
.
Похоже, что TypeScript по умолчанию не предупреждает о конкатенации строк и чисел, есть ли способ добиться этого?
Если быть более точным: как я могу получить предупреждения о таких случаях, как '1' + 1
for...in
в массиве... - person Jared Smith   schedule 05.08.2019console.log('1' + 1)
- person Limon Monte   schedule 05.08.2019"" + 1
разрешено в JS, поэтому оно разрешено в TS.console.log()
принимает как строки, так и числа, поэтому здесь нет ошибки. Однако, если вы попытаетесь обработатьi + 1
как число, вы получите ошибку. - person Aaron Beall   schedule 05.08.2019console.log
выше, это полностью выходит за рамки моего вопроса. Очень хотелось бы получать предупреждения о таких случаях:'1' + 1
. - person Limon Monte   schedule 05.08.2019eslint
илиtslint
— ваш единственный вариант. - person artem   schedule 05.08.2019tslint
был устарел, возможно, вы знаете, какоеeslint
правило мне следует использовать ? - person Limon Monte   schedule 05.08.2019console.log("There are " + files.length + " files")
, что сопровождающие TS не думают, что здесь стоит быть более строгим. - person jcalz   schedule 06.08.2019