Проверка типов в Vite
Проверка типов выполняется отдельной командой и не входит в сборку Vite.
Пакет typescript
ставят в проект
как зависимость для разработки.
Выполним установку:
npm install typescript --save-dev
Компилятору нужен список файлов
и базовые правила.
Создадим короткий
tsconfig.json
с каталогом src:
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true
},
"include": ["src"]
}
Проверку запускают командой
tsc
с флагом --noEmit:
компилятор читает типы,
но не пишет JavaScript на диск.
Если параметр функции
объявлен как строка,
а передали число,
запуск останавливается
и сообщает о несовпадении типов.
Пример с ошибкой в
src/main.ts:
function show(text: string): string {
return text;
}
document.body.textContent = show(42);
Выполним проверку в терминале:
npx tsc --noEmit
Процесс завершится с ошибкой, и дальнейший вывод не пойдёт - исправляют типы или аргумент вызова. Сборка Vite эту команду не вызывает. При рабочем сервере разработки страница с числом в вызове всё равно откроется, потому что синтаксис уже переведён. Выполним привычную сборку:
npm run build
Команда завершится успешно,
и в dist
появятся файлы,
хотя проверка типов
такой вызов не одобрила бы.
Для надёжности
проверку типов
запускают отдельно
перед публикацией
или в автоматическом сценарии.
Запишите в src/ready.ts вызов функции со строковым параметром с числовым аргументом и убедитесь, что проверка типов останавливается с сообщением об ошибке.
Не исправляя типы, выполните сборку проекта и убедитесь, что каталог dist создаётся.