【问题标题】:tsconfig.json typeroots custom path not picked uptsconfig.json typeroots 自定义路径未拾取
【发布时间】:2020-11-10 02:08:46
【问题描述】:

我有一些自定义的 .d.ts 文件,我希望 tsc 在编译时获取这些文件。为了完成这项工作,我修改了 tsconfig.file 以包含以下内容

"typeRoots": [
      "../node_modules/@types",
      "./app/modules"
    ]

./app/modules 是我的自定义 .d.ts 文件所在的位置。在 ./app/modules 文件夹中,我有以下文件 myModule.d.ts

export declare module myModule {
  function Login();
  function Logout();
}

现在在我的另一个打字稿文件中,我有以下导入

import { myModule } from 'myModule';

这里出现以下错误找不到模块“myModule”。

【问题讨论】:

  • 我遇到了同样的问题,我已经发布了。对我来说, typeRoots 不起作用。对于临时解决方法,我添加了一个安装后脚本,它将类型从我的嵌套目录复制到根目录下的 @types 目录。

标签: typescript module tsconfig


【解决方案1】:

我找到了解决此问题的配置。注意pathsbaseUrl 属性:

{
  "version": "2.1.5",
  "compilerOptions": {
    "module": "commonjs",
    "target": "ES5",
    "removeComments": true,
    "preserveConstEnums": true,
    "inlineSourceMap": true,
    "lib": ["es6", "dom"],
    "typeRoots": ["src/subfolder/node_modules/@types"],
    "moduleResolution": "node",
    "baseUrl": "./",
    "paths": {
      "*": ["src/subfolder/node_modules/@types/*", "*"]
    }
  },
  "exclude": ["node_modules", "src/subfolder/node_modules"]
}

【讨论】:

  • 这似乎适用于全局类型(由声明模块语法引入),但不适用于包含模块的声明文件?
猜你喜欢
  • 1970-01-01
  • 2016-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
  • 2015-05-21
  • 2021-11-29
相关资源
最近更新 更多