Различия существуют, и они довольно велики.
NoImplicite any выдает ошибку, когда переменная распознается как any
И не вводится напрямую, например:
let arr = []
arr.forEach(item => item) // Variable 'arr' implicitly has an 'any[]' type.(7005)
// but
[1,2,3].map(item => item) // OK
Во втором случае тип не объявлен (как в первом), однако компилятор TS знает, что такое переменная item
(отображение на Array<number>
должно вызываться с number
Также код, подобный этому:
let arr = []
arr.forEach((item: any) => item) // OK
не будет выдавать ошибку. item
типизирован как любой, но это явное, а не имплицитное.
В случае с правилами линтера они просто заставляют вас добавить определение типа, поэтому этот код [1,2,3].map(item => item)
пройдет компиляцию, однако linter будет makr как ошибка.