Источник:
smarty-code/smarty-crm/docs/refactoring/2026-06-16-lan50-typescript.md
Дата: 2026-06-16
Статус: выполнено
Issue: LAN-50
smarty-crm-frontend/tsconfig.json — конфигурация TypeScript (strict: false, noImplicitAny: false, moduleResolution: bundler, allowJs: true, noEmit: true).typescript@^5.4.5@types/react@^18.3.1@types/react-dom@^18.3.0| Было | Стало | Описание |
|---|---|---|
src/js/utils/isEmail.js |
src/js/utils/isEmail.ts |
Утилита валидации email, добавлена типизация аргумента и возвращаемого значения |
src/js/utils/isPhone.js |
src/js/utils/isPhone.ts |
Утилита валидации телефона, добавлена типизация аргументов и возвращаемого значения |
src/js/utils/routeUtils.js |
src/js/utils/routeUtils.ts |
Утилиты маршрутизации (getParams, parseRoute, matchRoutes), добавлены типы параметров, возвращаемых значений и интерфейс MatchedRoute |
webpack.config.js — уже обрабатывает .ts/.tsx (правило /\.(js|jsx|ts|tsx)$/).babel.config.js — уже содержит @babel/preset-typescript.npx tsc --noEmit: в мигрированных файлах ошибок нет. 73 ошибки в сторонних файлах (smarty-crm-toolkit, NumberInput.tsx) — pre-existing, не связаны с изменениями.npm run build:fe: 1 ошибка (Can't resolve '../../components/Editor') — pre-existing, воспроизводится и без изменений LAN-50.npx eslint на мигрированных файлах: чисто (0 ошибок).*.css module declarations для устранения TS2307 в toolkit.noImplicitAny: true для новых файлов.