我应该如何使用TypeScript 2的@types
到目前为止,我们习惯了tsd或(更好的版本)types
但现在,TypeScript 2提供了新的@types
function,我应该如何转换我的当前项目与@types一起工作?
我有tsd.json(typings.json是一些情况)与所有的依赖关系,步骤转移到TypeScript 2? 什么是新的最佳实践? @types是否支持特定版本?
谢谢!
这很简单。 只需通过npm安装你需要的定义。
例如,如果你需要lodash你可以做:
npm install --save @types/lodash
一旦安装完成,您可以立即在您的项目中使用它。 Typescript将默认parsing来自node_modules / @ types文件夹的安装的@types软件包的types 。 不再需要tsd.json或typings.json文件。
其他要点:
- npm中的@types包的主版本和次版本应该与包版本一致。
- 你可以在这里searchtypes: http : //microsoft.github.io/TypeSearch/
- 在这里阅读关于
typeRoots
和types
。 具体要注意这两点:- 如果在
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