Как заставить все переменные в Typescript объявить тип

Я понимаю, что когда вы объявляете переменную в Typescript, вы можете выбрать, следует ли указывать тип переменной. Если тип не указан, используется "любой" тип по умолчанию. Есть ли способ заставить все переменные объявить тип, даже если он может быть "любым". Как и в, я хочу ошибку компилятора, когда тип не указан. Это значит, что программисты будут вынуждены давать все типы и предотвращать случаи, когда переменные случайно остаются "любыми".

Ответы

Ответ 1

Неверно, что объявленная переменная обязательно не имеет типа в TypeScript. Компилятор TypeScript, когда это возможно, выведет тип, основанный на правой части объявления.

Например:

var x = 150;

x будет номером, так как RHS является числом.

Вы можете использовать параметр компиляции командной строки для поиска объявлений, где тип не может быть выведен с помощью --noImplicitAny:

Предупреждать о выражениях и объявлениях с подразумеваемым типом "any".

Этот параметр поймал бы случай, когда объявлена ​​переменная d, но не назначенная сразу.

var d;

Возникнет ошибка:

ошибка TS7006: параметр 'd' 'test' неявно имеет тип "any".

Коммутатор компилятора также ловит параметры без указанного типа, а в @basarat указывает на комментарий, он также ловит типы возвращаемого значения и члены класса/интерфейса.

Там немного больше информации в в этом сообщении в блоге. Обратите внимание, что имеется также эквивалентная настройка MSBuild/project: <TypeScriptNoImplicitAny>.

Ответ 2

Вы также можете установить в tsconfig.json:

{
  "compilerOptions": {
     "noImplicitReturns": true,
     "noImplicitAny": true
  }
}