Обновить

Комментарии 4

Вы знаете, а я вот наоборот вынужден был дойти до TS, потому что анализ Storm,Idea/etc JS кода оставляет желать лучшего, но что одно что другое вгоняет меня в ступор. И в том числе изза того что вы указали. Но ТС со своим контрактами уровня "мамой клянусь" и странными практиками (а давайте везде весело ставить нулы) и без нормального рантайм функционала типо полноценной рефлексии вызывает у меня ощущения, что за 20 лет в JS мире не изменилось вообще ничего.

Без JSDoc'ов анализ JS-кода вообще очень печален в любой IDE. А с JSDoc'ами анализатор IDEA очень даже неплохо с кодом управлялся. Может и похуже Java/JavaDoc, но точно не хуже, чем PHP/PhpDoc.

Без них я вообще не знаю как люди живут. И все же похуже Java/Php: постоянно недоумеваю почему в js файлах у меня нет предупреждения о том что свойства такого у объекта просто нет, иногда просто тип не распознается, некоторые хинты по месту тупо не работают через раз. Я последние полгода живу буквально с ними в обнимку, наелся)

Т.е. основная проблема в том что вы используете DI, но не понимаете как как подружить с ним typescript, который по своей сути является совокупностью JSDocs и транспилятора babel (это отсылка к религиозным соображениям, не в обиду :) )

Во vue.js, например, есть механизмы позволяющие выполнять инъекции кода в экземпляр для работы в рантайме и там же есть возможность выполнить инъекцию в исходный интерфейс для того чтобы тот же language server в vscode отработал корректно (и в других редакторах или ide тоже)

Работает это все через декларирование глобальных типов/модулей и их перегрузку, если это можно так назвать

Возможно это то что вы ищите

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации