Переход от типизации к @types с помощью Visual Studio & Typescript 2.0.3

Я попытался удалить типизацию из моего веб-проекта (сообщество Visual Studio 2015) и установить файлы d.ts через новые NPM @types (typescript 2.0.3) в package.json:

 "dependencies": {
    "@types/angular": "^1.5.8",
    "@types/angular-cookies": "^1.4.2",
    "@types/angular-local-storage": "^0.1.33",
    "@types/angular-material": "^1.1.37",
    "@types/angular-translate": "^2.4.33",
    "@types/lodash": "^4.14.36"
  }

Visual Studio IntelliSense хорошо работала с типизиями, потому что я включил папку с образцами в проект VS. NPM устанавливает типы в папку node_modules/@types. Теперь вот моя проблема. Я действительно не хочу включать что-либо из node_modules в проект VS. node_modules папка должна быть прекрасной, чтобы ее удалили и снова заново создавали на npm по желанию. Visual Studio не распознает типизацию без их включения в проект! Я предполагаю, что я мог бы создать файл с///ссылочными тегами в нем, но тогда мне пришлось бы поддерживать этот файл вручную при установке/удалении типирования.

Есть ли какой-нибудь рекомендуемый способ работы VS IntelliSense?

Ответы

Ответ 1

Я боролся с этой же проблемой после того, как переключился на 2.0 и использовал новое соглашение @types.

Я нашел это полезное свойство после просмотра спецификации для tsconfig.json здесь: http://json.schemastore.org/tsconfig

"typeRoots" свойство compilerOptions.

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

Мой файл tsconfig.json в качестве примера:

{
  "compileOnSave": true,
  "compilerOptions": {
    "outDir": "./dist/",
    "sourceMap": true,
    "noImplicitAny": false,
    "module": "commonjs",
    "target": "es5",
    "jsx": "react",
    "typeRoots": [
      "node_modules/@types"
    ]
  }
}

Надеюсь, это поможет кому-то с той же проблемой.

Ответ 2

Установите VS 2015 Update 3, затем установите инструменты TypeScript 2.0.3.

Ответ 3

Ниже приведен пример использования @types в Visual Studio 2015 (начиная с версии 3)...

Во-первых, обязательно TypeScript v2.0.3 или выше.

Затем добавьте типизацию следующим образом:

  "devDependencies": {
    "typescript": "^2.0.3",

    "@types/jquery": "*",
    "@types/lodash": "^4.14.36"
  }

Затем в вашем файле TypeScript просто добавьте следующее...

/// <reference path="jquery.d.ts"/>
/// <reference path="jquery.lodash.d.ts" />

Чтобы узнать, доступен ли тип библиотеки, проверьте Тип поиска, приведенный в действие Определенно напечатано.

Литература: