Переход от типизации к @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" />
Чтобы узнать, доступен ли тип библиотеки, проверьте Тип поиска, приведенный в действие Определенно напечатано.
Литература: