In some cases where no type annotations are present, TypeScript will fall back to a type of any for a variable when it cannot infer the type.
This can cause some errors to be missed, for example:
ts
// @noImplicitAny: false
function fn(s) {
// No error?
console.log(s.subtr(3));
}
fn(42);// @noImplicitAny: false
function fn(s) {
// No error?
console.log(s.subtr(3));
}
fn(42);Turning on noImplicitAny however TypeScript will issue an error whenever it would have inferred any:
ts
// @errors: 7006
function fn(s) {
console.log(s.subtr(3));
}// @errors: 7006
function fn(s) {
console.log(s.subtr(3));
}