Ответ 1
Неверно, что объявленная переменная обязательно не имеет типа в TypeScript. Компилятор TypeScript, когда это возможно, выведет тип, основанный на правой части объявления.
Например:
var x = 150;
x
будет номером, так как RHS является числом.
Вы можете использовать параметр компиляции командной строки для поиска объявлений, где тип не может быть выведен с помощью --noImplicitAny
:
Предупреждать о выражениях и объявлениях с подразумеваемым типом "any".
Этот параметр поймал бы случай, когда объявлена переменная d
, но не назначенная сразу.
var d;
Возникнет ошибка:
ошибка TS7006: параметр 'd' 'test' неявно имеет тип "any".
Коммутатор компилятора также ловит параметры без указанного типа, а в @basarat указывает на комментарий, он также ловит типы возвращаемого значения и члены класса/интерфейса.
Там немного больше информации в в этом сообщении в блоге. Обратите внимание, что имеется также эквивалентная настройка MSBuild/project: <TypeScriptNoImplicitAny>
.