docs: зафиксировать известное ограничение проверки типов frontend

vue-tsc 0.35.0 (2022) шаблоны Vue практически не типизирует: build:prod
проходит зелёной, не давая гарантии, которую обещает. Замер записан — на паре
typescript@5.9 + vue-tsc@2.2 тот же код даёт около 155 ошибок в четырёх файлах.

Обновление typechecker'а тянет vue 3.2 -> 3.5, а за ним element-plus, pinia и
vue-router, поэтому вынесено в отдельную работу. На безопасность не влияет:
уязвимые пакеты обновляются движением lockfile внутри объявленных диапазонов.
This commit is contained in:
2026-08-29 21:38:40 +05:00
parent b99be7d514
commit e30fdaa004
+23
View File
@@ -111,6 +111,29 @@ Bun обновляется отдельно от остальных: оркес
полного прохода `bun test → tsc → compile → приёмка на Debian`, а не строки в полного прохода `bun test → tsc → compile → приёмка на Debian`, а не строки в
общем патче. общем патче.
### Известное ограничение: проверка типов frontend почти ничего не проверяет
`pnpm run build:prod` выполняет `vite build && vue-tsc --noEmit`, но `vue-tsc`
здесь версии `0.35.0` (2022 год) и шаблоны Vue практически не типизирует.
Проверка проходит зелёной, не давая гарантии, которую обещает.
Замер сделан: на паре `typescript@5.9` + `vue-tsc@2.2` тот же исходный код даёт
**около 155 ошибок типов** в четырёх файлах — почти все одного вида
(`possibly 'undefined'` при обращении к необязательным полям модели конфига
Hysteria в шаблоне) плюс несовместимость `DefaultRow` с `PeerVo` в слотах
таблицы пиров.
Это не дефект безопасности и не блокер релиза: ошибки существуют в коде уже
сейчас и ни на что в рантайме не влияют. Но обновление typechecker'а тянет за
собой обновление `vue` (3.2 → 3.5, иначе `vue-tsc` 2.x не разбирает
`JSX.IntrinsicElements`), а за ним — `element-plus`, `pinia` и `vue-router`.
То есть это отдельная работа с собственной проверкой на живой панели, а не
строка в security-патче.
Ограничение на безопасность не влияет: уязвимые пакеты frontend обновляются
независимо от версии typechecker'а, движением lockfile внутри уже объявленных
диапазонов (см. `pnpm.overrides` в `apps/frontend/package.json`).
### Проверка зависимостей на уязвимости ### Проверка зависимостей на уязвимости
`tools/build/lib/security.sh` — обязательный шаг сборки между тестами админки и `tools/build/lib/security.sh` — обязательный шаг сборки между тестами админки и