Подтвердить что ты не робот

Typescript. Рекомендации по Triple-Slash все еще требуются при использовании "импорт из",

В старых версиях Typescript необходимо было добавить знаменитый

/// <reference

чтобы добавить необходимые ссылки. Теперь после версии 1.6 мы можем импортировать зависимости, используя рекомендуемый путь ES6.

import Greeter from "./greeter";

Я читал какое-то время, но мне до сих пор неясно, нужно ли вообще избегать ссылок на тройной слэш или нет.

BTW. Теперь компилятор знает, в каком порядке он должен скомпилировать TS файлы, если мы используем filesGlob вместо files в tsconfig.json?

4b9b3361

Ответ 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.