使用Visual Studio和Typescript 2.0.3从打字输入到@types

Geo*_*nap 16 visual-studio-2015 typescript-typings typescript2.0

我试图从我的Web项目(Visual Studio 2015社区)中删除打字输入,并通过package.json中的新NPM @types(typescript 2.0.3)安装d.ts文件:

 "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"
  }
Run Code Online (Sandbox Code Playgroud)

Visual Studio的IntelliSense之前很好地处理了打字,因为我在VS项目中包含了typings文件夹.NPM将类型安装到node_modules/@types文件夹中.现在这是我的问题.我真的不想node_modules在VS项目中包含任何内容. node_modules文件夹应该可以被删除并由npm随意重新创建.如果没有将它们包含在项目中,Visual Studio将无法识别已安装的类型!我想我可以创建一个带有///引用标签的文件,但是在安装/删除打字时我必须手动维护这个文件.

是否有任何推荐的方法使VS IntelliSense工作?

Mie*_*iek 12

在切换到2.0并使用新的@types约定后,我正在努力解决同样的问题.

在查看了tsconfig.json的规范后,我发现了这个有用的属性:http://json.schemastore.org/tsconfig

compilerOptions的"typeRoots"属性.

我无法获取文件或包含数组以提取我的打字,但这似乎已经为我做了诀窍.

以我的tsconfig.json文件为例:

{
  "compileOnSave": true,
  "compilerOptions": {
    "outDir": "./dist/",
    "sourceMap": true,
    "noImplicitAny": false,
    "module": "commonjs",
    "target": "es5",
    "jsx": "react",
    "typeRoots": [
      "node_modules/@types"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助有同样问题的人.

  • 经过仔细检查后,我意识到当使用新的@types repo时,除非明确导入,否则Intellisense的模块将不可用.例如对于lodash,我必须使用`import*as _ from'loodash'; "我认为这是我原来问题的答案. (2认同)