Почти все файлы определения, которые так легко доступны, вы знаете где, делаете declare module
или declare var
. Разве это не проблема? Если я забуду импортировать реализацию объявленного модуля, а затем использовать его, компилятор никогда не даст мне ошибку, но приложение будет ужасно громить во время выполнения.Машинопись: файлы определения и глобальные значения
Один из способов понять, как это решить - записать файлы определений только с помощью declare module "topLevelName"
, поэтому вы не можете случайно использовать его, не требуя его вначале. Но это создает проблему для таких вещей, как jQuery, потому что люди склонны не require
, а просто помещают их в глобальный контекст. В этом случае текущий подход действительно работает правильно.
Я просто не могу обернуть голову вокруг этого огромного ограничения системы. Я что-то упускаю?
TypeScript не проверяет, что все скомпилированные выходные файлы фактически включены на страницу, так как могут быть 'a.ts' и' b.ts', но на странице есть только ' '. – Douglas