如何让TypeScript处理任何给定的文件夹,就像它对待'类型'夹?

时间:2018-01-04 17:47:36

标签: typescript declaration

所以我在一个名称空间下为全局库编写了一堆声明文件。我在各个子文件夹中组织了50多个d.ts个文件,所有这些文件都在types文件夹中。所有文件都以这种方式编写:

declare namespace pc {
  class Foo {}
  function bar(): void;
}

我不会在声明文件或项目的源代码中的任何地方使用任何三次斜杠指令,导出或导入。 TypeScript只是做它的事情,一切正常。现在假设我想将所有声明文件移动到另一个文件夹,比如文件夹node_modules/playcanvas-typings,我需要做什么才能使TypeScript使用该文件夹中的声明文件,就像它使用文件夹中的声明文件一样。 types文件夹?

我尝试将文件夹添加到typeRoots中的tsconfig.json,但它不起作用。以下是我tsconfig.json中的编译器选项:

"compilerOptions": {
  /* Basic Options */
  "target": "es5",                          
  "module": "commonjs",                     
  "lib": [                                  
    "es2017",      
    "dom"
  ],     
  "sourceMap": true,                        
  /* Strict Type-Checking Options */
  "strict": true,
  /* Module Resolution Options */
  "moduleResolution": "node",               
  "typeRoots": [   
    "node_modules/playcanvas-typings"
  ],    
  /* Experimental Options */
  "experimentalDecorators": true,           
  "emitDecoratorMetadata": true             
}

我的IDE和编译器给出了Cannot find namespace 'pc'错误。

1 个答案:

答案 0 :(得分:0)

tsconfig.json

中加入您的文件夹
{
  ...
  "include": [
    "types"
  ]
}