我应该如何使用TypeScript 2的@types

到目前为止,我们习惯了tsd或(更好的版本)types

但现在,TypeScript 2提供了新的@typesfunction,我应该如何转换我的当前项目与@types一起工作?

我有tsd.json(typings.json是一些情况)与所有的依赖关系,步骤转移到TypeScript 2? 什么是新的最佳实践? @types是否支持特定版本?

谢谢!

这很简单。 只需通过npm安装你需要的定义。

例如,如果你需要lodash你可以做:

 npm install --save @types/lodash 

一旦安装完成,您可以立即在您的项目中使用它。 Typescript将默认parsing来自node_modules / @ types文件夹的安装的@types软件包的types 。 不再需要tsd.jsontypings.json文件。

其他要点:

  • npm中的@types包的主版本和次版本应该与包版本一致。
  • 你可以在这里searchtypes: http : //microsoft.github.io/TypeSearch/
  • 在这里阅读关于typeRootstypes 。 具体要注意这两点:
    • 如果在typeRoots中指定了typeRoot ,那么只有指定的文件夹才会用于types的根目录。 这将排除./npm_modules/@types/,除非你指定它。
    • 如果在tsconfig.json中指定了types ,那么只包含指定的包。

阅读更多的博客文章在这里 。

Typescript 2.0摆脱以前的types系统。
现在Typescript 2.0应该默认查看./node_modules/@types并获取作为单独节点模块npm install --save @types/react ,例如npm install --save @types/react (如@David Sherret所述)

当前版本的Typescript 2.0 beta版中存在一个错误,它不会加载新的types。 手动通过cmd new tsc编译文件,但在VS 2015中没有IntelliSense支持,并且.ts文件处于编辑模式时不显示任何错误。

要解决它,使用类似的设置修改tsconfig.json

 { "compilerOptions": { // ... other config rows "typeRoots": [ "node_modules/@types/" ], "types": [ "jquery", "react", "react-dom", /*... your other types */ ], } } 

对于我来说,手动的"types"声明帮助解决了这个问题,为其他人"typeRoots"帮助。 希望这会节省开发人员的时间。

看起来他们都只是npm包,你可以在这里find所有支持的。

tsc将选取node_modules文件夹中的任何types。

您可以移动package.json中的typings.json中的依赖关系(只要您更改了course的名称)。

你可以在这里阅读更多。

我应该如何将当前的项目转换为@types

我绝对推荐持续一会儿。

例如,问题仍然得到解决…只是4小时前: https : //github.com/Microsoft/TypeScript/issues/9725#issuecomment-233469422