2016-09-23 57 views
14

我嘗試從我的web項目(Visual Studio 2015社區)中刪除類型並通過新的NPM @types(typescript 2.0.3)安裝d.ts文件)中的package.json:使用Visual Studio&Typescript 2.0.3從類型轉換到@types

"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的智能感知很好地與分型,因爲我包含在我的VS項目文件夾分型工作過。 NPM將類型安裝到node_modules/@types文件夾中。現在,這是我的問題。我真的不想在VS項目中包含node_modules的任何內容。 node_modules文件夾應該可以被刪除,然後由npm再次重新創建。 Visual Studio無法識別安裝的類型,而未將它們包含在項目中! 我想我可以在其中創建一個帶有///引用標籤的文件,但是當安裝/刪除類型時,我將不得不手動維護此文件。

是否有任何推薦的方法使VS智能感知工作?

回答

12

在開關切換到2.0並使用新的@types約定後,我一直在面對同樣的問題。

我發現尋找到規範對於這裏的tsconfig.json在此之後有用的屬性:compilerOptions的http://json.schemastore.org/tsconfig

「typeRoots」屬性。

我無法獲得文件或包含數組來拉我的類型,但這似乎已經爲我做了伎倆。

我tsconfig.json文件爲例:

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

希望這可以幫助別人有同樣的問題。

+0

這確實做了打字稿編譯器的伎倆。但Visual Studio IntelliSence仍然抱怨丟失的類型。 –

+0

您是否通過「npm install -g typescript」在全球安裝了打字稿? 我似乎沒有intellisense的問題,必須有一些其他全球配置丟失。 除了全局安裝的打字稿之外,你是否運行「npm install typings -g」? – Miek

+2

經過雙重檢查後,我意識到,當使用新的@types repo時,除非明確導入,否則Intellisense的模塊將不可用。例如,對於lodash,我必須使用'import *'作爲'lodash'的_; 「我認爲這是我原來的問題的答案。 –

2

安裝VS 2015 Update 3,然後安裝TypeScript 2.0.3工具。

+1

已經有更新3和TS 2.0.3工具。 –

1

下面是在Visual Studio 2015年(作爲更新3)使用@types的例子...

首先,一定要有打字稿V2.0.3或更高版本。

然後,加分型如下:

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

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

然後,在你的打字稿文件,只需添加以下...

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

爲了查看是否有庫類型是可用的,檢查出Type Search,供電Definitely Typed

參考文獻: