Typescript 让编译器知道我们通过npm@types安装的全局类型定义

Typescript 让编译器知道我们通过npm@types安装的全局类型定义,typescript,npm,typescript-typings,typescript2.0,gulp-typescript,Typescript,Npm,Typescript Typings,Typescript2.0,Gulp Typescript,我们现在可以 这些类型安装在这里 node_modules @types whatwg-fetch index.d.ts package.json README.md types-metadata.json whatwg-streams index.d.ts package.json README.md types-metadata.json 除此之外,whatwgfetch/

我们现在可以

这些类型安装在这里

node_modules
  @types
    whatwg-fetch
      index.d.ts
      package.json
      README.md
      types-metadata.json
    whatwg-streams
      index.d.ts 
      package.json
      README.md
      types-metadata.json
除此之外,whatwgfetch/README.md还说明了这一点

 * File structure: Global
 * Global values: Headers, Request, Response, fetch

默认情况下,编译中包含所有可见的“@types”包。任何封闭文件夹的node_modules/@类型中的包都被视为可见

尽管如此,在使用TypeScript 2.0编译项目时,仍会出现以下错误:

aurelia-fetch-client.d.ts(17,23): error TS2304: Cannot find name 'Request'.
aurelia-fetch-client.d.ts(17,45): error TS2304: Cannot find name 'Response'.
aurelia-fetch-client.d.ts(68,13): error TS2304: Cannot find name 'Headers'.
为了让编译器知道这些类型,我们需要做什么

作为一种解决方法,我们在tsconfig.json文件中添加了以下内容。但是,从TypeScript文档来看,这应该不是必需的

"compilerOptions": {
    "types": [ "whatwg-fetch" ],

这让我非常恼火,因为我不喜欢看到错误和警告。即使应用程序运行良好。这解决了TypeScript错误,谢谢!!你也是对的,我不知道为什么它不把它作为全球的,不管怎样。。。
"compilerOptions": {
    "types": [ "whatwg-fetch" ],