Typescript. Рекомендации по Triple-Slash все еще требуются при использовании "импорт из",
В старых версиях Typescript необходимо было добавить знаменитый
/// <reference
чтобы добавить необходимые ссылки. Теперь после версии 1.6 мы можем импортировать зависимости, используя рекомендуемый путь ES6.
import Greeter from "./greeter";
Я читал какое-то время, но мне до сих пор неясно, нужно ли вообще избегать ссылок на тройной слэш или нет.
BTW. Теперь компилятор знает, в каком порядке он должен скомпилировать TS файлы, если мы используем filesGlob
вместо files
в tsconfig.json?
Ответы
Ответ 1
Во-первых, я не верю, что filesGlob
официально поддерживается: https://github.com/Microsoft/TypeScript/issues/1927
Теперь, что касается ссылки с тройным слэшем, это не требуется, если все указано в files
в tsconfig.json.
Вы обнаружите, что если вы используете инструмент типа tsd
или typings
для управления определениями типов для ваших внешних библиотек, они создадут один файл, который вы включите в tsconfig.json; этот единственный файл будет использовать ссылки с тройной косой чертой, чтобы включить остальные файлы.
Более подробную информацию о ссылках на тройную косую черту можно найти в справочнике TypeScript
Ответ 2
При использовании внутренних модулей/пространств имен нам нужен ///<reference
, чтобы сообщить компилятору, что зависит от того, что для построения графика зависимостей и сортировки файлов в правильном порядке.
Описанный вами ES6-модуль (внешние) модули, см. https://github.com/Microsoft/TypeScript/issues/2242. Таким образом, порядок конкатенации не имеет значения, поскольку они загружаются асинхронно.
Таким образом, используя модули ES6, вам не нужно ///<references
.
Что касается fileGlobs, это не реализовано в TypeScript (пока), но даже если это так, я думаю, что маловероятно, чтобы это изменит что-либо о разрешении зависимостей файлов в проекте. Даже в atom-typescript, где они реализуют fileGlobs, они очень упрямый против, который "зависит от любой формы js ordering", и они не поддерживают каким-либо другим способом, кроме как вручную упорядочивать файлы в tsconfig.json.