18

我试图从我的 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"
  }

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

有什么推荐的方法可以让 VS IntelliSense 工作吗?

4

3 回答 3

14

在切换到 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"
    ]
  }
}

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

于 2016-09-26T00:54:49.867 回答
2

安装 VS 2015 Update 3,然后安装 TypeScript 2.0.3 工具。

于 2016-09-26T12:51:36.130 回答
1

这是在 Visual Studio 2015 中使用 @types 的示例(截至更新 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" />

为了查看一个库类型是否可用,请查看Type Search,由Definitive Typed提供支持。

参考:

于 2016-11-16T18:59:58.313 回答