我应该如何在 TypeScript 2 中使用 @types
How should I use @types with TypeScript 2
到目前为止我们已经习惯了 tsd 或(更好的版本)typings
但是现在 TypeScript 2 提供了新的 @types
功能,我应该如何将我当前的项目转换为使用 @types?
我有 tsd.json(某些情况下 typings.json)以及所有依赖项,迁移到 TypeScript 2 的步骤是什么?
新 最佳实践是什么?
@types 是否支持特定版本?
看起来它们都是 npm 包,你可以找到所有支持的包 here。
tsc 将选取 node_modules 文件夹中的任何类型。
您可以将 typings.json 中的依赖项移动到 package.json 中(前提是您更改名称太当然了)。
您可以阅读更多相关内容 here。
很简单。只需通过 npm 安装您需要的定义即可。
例如,如果你需要 lodash,你可以这样做:
npm install --save @types/lodash
安装后您可以立即在您的项目中使用它。默认情况下,Typescript 将从 node_modules/@types 文件夹中解析已安装的 @types 包的类型。不再需要 tsd.json 或 typings.json 文件。
加分:
- npm中@types包的主次版本要与包版本相对应
- 您可以在此处搜索类型:http://microsoft.github.io/TypeSearch/
- 了解
typeRoots
and types
here。具体注意这两点:
- 如果在tsconfig.json中指定
typeRoots
,则只有指定的文件夹将用于类型根目录。这将排除 ./npm_modules/@types/ 除非您指定它。
- 如果在tsconfig.json中指定了
types
,则只包含指定的包。
在博客中阅读更多内容 post here。
how should I convert my current project to work with @types
我绝对建议再坚持一段时间。
例如问题仍在解决中……就在 4 小时前:https://github.com/Microsoft/TypeScript/issues/9725#issuecomment-233469422
Typescript 2.0 摆脱了以前的 Typings 系统。
现在 Typescript 2.0 默认情况下应该查看 ./node_modules/@types
并获取您作为单独节点模块安装的类型,例如npm install --save @types/react
(如@David Sherret 所述)
当前版本 Typescript 2.0 beta 存在错误,无法加载新类型。手动通过 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"
帮助。希望它能节省开发人员的时间。
到目前为止我们已经习惯了 tsd 或(更好的版本)typings
但是现在 TypeScript 2 提供了新的 @types
功能,我应该如何将我当前的项目转换为使用 @types?
我有 tsd.json(某些情况下 typings.json)以及所有依赖项,迁移到 TypeScript 2 的步骤是什么?
新 最佳实践是什么? @types 是否支持特定版本?
看起来它们都是 npm 包,你可以找到所有支持的包 here。
tsc 将选取 node_modules 文件夹中的任何类型。
您可以将 typings.json 中的依赖项移动到 package.json 中(前提是您更改名称太当然了)。
您可以阅读更多相关内容 here。
很简单。只需通过 npm 安装您需要的定义即可。
例如,如果你需要 lodash,你可以这样做:
npm install --save @types/lodash
安装后您可以立即在您的项目中使用它。默认情况下,Typescript 将从 node_modules/@types 文件夹中解析已安装的 @types 包的类型。不再需要 tsd.json 或 typings.json 文件。
加分:
- npm中@types包的主次版本要与包版本相对应
- 您可以在此处搜索类型:http://microsoft.github.io/TypeSearch/
- 了解
typeRoots
andtypes
here。具体注意这两点:- 如果在tsconfig.json中指定
typeRoots
,则只有指定的文件夹将用于类型根目录。这将排除 ./npm_modules/@types/ 除非您指定它。 - 如果在tsconfig.json中指定了
types
,则只包含指定的包。
- 如果在tsconfig.json中指定
在博客中阅读更多内容 post here。
how should I convert my current project to work with @types
我绝对建议再坚持一段时间。
例如问题仍在解决中……就在 4 小时前:https://github.com/Microsoft/TypeScript/issues/9725#issuecomment-233469422
Typescript 2.0 摆脱了以前的 Typings 系统。
现在 Typescript 2.0 默认情况下应该查看 ./node_modules/@types
并获取您作为单独节点模块安装的类型,例如npm install --save @types/react
(如@David Sherret 所述)
当前版本 Typescript 2.0 beta 存在错误,无法加载新类型。手动通过 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"
帮助。希望它能节省开发人员的时间。