当前位置: 首页 > 知识库问答 >
问题:

如何将@types与TypeScript 2一起使用

金阳曜
2023-03-14

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

但是现在 TypeScript 2 提供了新的@types功能,我应该如何将我当前的项目转换为与@types一起使用?

我有tsd.json(在某些情况下是typings.json)和所有的依赖项,迁移到TypeScript 2的步骤是什么?

有哪些新的最佳实践?@types是否支持特定版本?

共有3个答案

赵星华
2023-03-14

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

TSC将选择node_modules文件夹中的任何类型。

你可以在package.json中移动你在typings.json中的依赖项(当然,前提是你也更改了名称)。

你可以在这里读到更多。

别兴国
2023-03-14

Typecript 2.0摆脱了以前的Typings系统
现在Typecript 2.0默认情况下应该查看。/node_modules/@类型并获取您作为单独节点模块安装的类型,例如npm的安装-保存@类型/反应(如@大卫·谢雷特所提到的)

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

要解决此问题,请使用类似的设置修改< code>tsconfig.json:

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

对我来说,手动< code >“types”声明帮助解决了这个问题,对其他人来说< code >“typeRoots”也有帮助。希望这将节省开发人员的时间。

佘茂才
2023-03-14

这很简单。只需通过 npm 安装所需的定义即可。

例如,如果您需要洛达什,您可以这样做:

npm install --save @types/lodash

安装后,您可以立即在您的项目中使用它。排版脚本将默认从node_modules/@类型文件夹解析已安装的@类型包的类型。不再需要tsd.json或typings.json文件。

其他要点:

  • npm 中 @types 包的主要和次要版本应与包版本相对应。
  • 您可以在此处搜索类型:http://microsoft.github.io/TypeSearch/
  • 在此处阅读有关类型根类型的信息。特别要注意这两点:
    • 如果在 tsconfig.json 中指定了 typeRoots,则只有指定的文件夹将用于根类型。这将排除 ./npm_modules/@types/,除非您指定它。
    • 如果在 tsconfig.json 中指定了类型,则仅包含指定的包。

    在此处的博客文章中阅读更多内容。

 类似资料:
  • 我在Ubuntu 14.04中安装了phpbrew以使用PHP5.4。它工作得很好,但当我尝试使用composer时除外,composer会忽略phpbrew并安装与PHP5.5相关的依赖项。 有没有办法强制composer与phpbrew config兼容?我试图在我的作曲家中添加:php:“5.4”。json,但是它说这个要求在我的php版本中是不可能的。

  • 我是Micronaut框架的新手,我正在尝试使用entitymanager创建我的存储库。我这样创建了我的存储库 我使用这个类实现接口并注入entitymanager 问题是我一直有这个错误: PS:我已经启用了注释处理

  • 我正在尝试将composer与我的WampServer一起使用。 我所有文件的路径都是,但当我运行composer时,它会将供应商文件和其他东西安装到其他地方。 我甚至不知道我的项目在哪里,我也不能改变我的项目在哪里的路径。我已经尝试了所有的方法,但它似乎仍然没有在我的项目文件夹中安装供应商文件。

  • API level 28和Google建议使用registerNetworkCallback(NetworkRequest,PendingIntent)不推荐CONNECTIVITY\u操作。 我尝试使用ConnectionManager注册了registerNetworkCallback。NetworkCallback和它的工作,但我想使用PendingContent。 让我困惑的是公共空寄存器

  • 问题内容: 当我尝试将Webpack与简单的Express服务器一起使用时,总是会收到大量错误消息: express.js 我得到所有这些错误: 这是我的配置文件: 我该怎么办,我还需要在服务器端使用webpack。 我像这样运行express.js文件: 问题答案: 我最终要做的是,我使用了两种不同的配置,一种用于使用webpack将服务器内容打包在一起,另一种用于将所有浏览器内容打包在一起,并

  • 我有两个多对多关系的实体。 在类角色中: java.lang.StackOverflowError:空 我该如何解决这个问题?我在Stackoverflow上看到了类似的问题,但我没有找到真正有效的解决方案。 Upd:抛出异常的位置: