WebStorm + Typescript: как использовать без ссылочного пути?

В Visual Studio возможно использование внутренних модулей без необходимости включать теги /// <reference path="..." />.
Как можно выполнить одно и то же в WebStorm 10?

Другой вопрос, как я могу заставить WebStorm импортировать типизацию в проект? WebStorm 10 помещает типизацию в папку кэша.

Ответы

Ответ 1

Для внутренних модулей используйте загрузчик модуля, например RequireJS/SystemJS/Webpack/Browserify, это избавит вас от необходимости писать /// <reference path="..." /> для внутренних модулей, и вам больше не понадобится использовать пространства имен module.
Если вы используете RequireJS, вам нужно запустить tsc с аргументом -m amd, для Browserify -m commonjs, SystemJS и Webpack поддерживают стили amd и commonjs (а также другие), однако там есть более простое решение используя tsconfig.json файлы (продолжайте чтение), где вам не нужно добавлять этот аргумент.

Для внешних TypeScript модулей; обычно файлы d.ts(Определения типов для внешних JS-библиотек, aka Типики), установите typings через Node менеджер пакетов - NPM. < бр /" > typings помогает вам управлять Типом в вашем проекте и объединить все строки /// <reference path="..." /> в один файл d.ts.

Для внутренних и внешних модулей вы можете использовать файл tsconfig.json, чтобы устранить необходимость в каких-либо строках /// <reference path="..." />.

Webstorm 11 (в настоящее время на этапе разработки, распространяемого в рамках программы раннего доступа, EAP) имеет встроенную поддержку tsconfig. json.
Для Webstorm 10 вы можете использовать это решение.

Если вы решили не использовать tsconfig.json, но при использовании typings для управления вашими типиями и загрузчиком модуля, например RequireJS, вам нужно будет добавить опцию командной строки -m [...] и включить одиночная строка /// <reference path="path/typings/something.d.ts" /> поверх ваших внутренних файлов .ts. этот файл .d.ts будет содержать все внешние типы, от которых зависит ваш проект.


tsconfig.json

Поместите его в свой корень проекта.
Это содержимое может выглядеть примерно так:

{
  "compilerOptions": {
    "module": "commonjs",
    "sourceMap": true,
    "target": "es5",
    "experimentalDecorators": true
  },
  "files": [
    "typings/something.d.ts",
    "main.ts"
  ]
}

Примечание, что вам не нужно перечислять все ваши файлы .ts под ключом files:, tsc автоматически знает, что он должен включать в себя зависимости (рекурсивно) любого файла, упомянутого под files:.


Webstorm 11

Config webstorm для использования tsconfig.json:

введите описание изображения здесь


TL;DR

Если вы можете, лучше (IMHO) сделать следующее:

  • Используйте загрузчик модуля (RequireJS/SystemJS/Browserify/Webpack).
  • Управляйте файлами d.ts(типизациями) с помощью модуля typings.
  • Оберните все это в файл tsconfig.json(настройте webstorm для его использования).

После этого вы можете удалить все ваши строки /// <reference path="..." />.