为什么我需要在Angular 2项目中使用`typings.json`文件?

Asi*_*K T 8 json typescript typescript-typings angular

为什么我需要typings.json如下:

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160725163759",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "node": "registry:dt/node#6.0.0+20160831021119"
  }
}
Run Code Online (Sandbox Code Playgroud)

对于Angular2项目?我有:

typings.json为TypeScript编译器本身无法识别的库提供了其他定义文件.

其中,作为一个新手,我不清楚.

Asi*_*K T 5

所以,我发现了这个:

任何 JavaScript 库,例如 jQuery、Jasmine 测试库和 Angular,都使用 TypeScript 编译器本身无法识别的功能和语法来扩展 JavaScript 环境。当编译器无法识别某些内容时,它会抛出错误

因此,如果我们编写了一个可供其他人在其项目中与 TypeScript 一起使用的库,则 TypeScript 会抛出错误。要解决它,我们必须在库目录中编写 TypeScript 类型定义文件(.d.ts 文件)

AngularJS 以及大多数库已经这样做了。但是,像“core-js”和“jasmine”这样的库在它们的 npm 包中不包含 d.ts 文件。幸运的是,它们的作者或社区贡献者.d.ts为这些库创建了单独的文件,并将它们发布在知名位置。打字工具可以为您查找和获取这些文件。

因此,我们必须编写typings.json文件以获得正确的类型定义文件才能顺利运行项目。

  • 注意:`typings.json` 已被弃用,取而代之的是来自 DefinatelyTyped 的 @types 包。请参阅 https://www.npmjs.com/package/typings (2认同)