编译器无法识别自定义TS类型

时间:2018-07-08 03:19:49

标签: typescript typescript-typings

我在src/@types/yargs-interactive/index.d.ts有一个为https://github.com/nanovazquez/yargs-interactive创建的打字文件。其内容如下:

declare function yargsInteractive(): any;

declare namespace yargsInteractive {
  interface OptionData {
    type: string;
    describe: string;
    default?: string | number | boolean;
    prompt?: string;
  }

  interface Option {
    [key: string]: OptionData;
  }

  interface Interactive {
    usage(usage: string): any;
    interactive(options: Option[]): any;
    then(callback: (result: any) => any): any;
  }
}

export = yargsInteractive;

但是,当我尝试导入它时,得到的只是一个Could not find a declaration file for module 'yargs-interactive'错误。我尝试更改tsconfig.json文件以将typeRoots添加到src/@types目录,但是仍然找不到它。当它在node_modules/@types/yargs-interactive/index.d.ts下时,它会识别它。

我在这里做什么错了?

1 个答案:

答案 0 :(得分:3)

根据this issue comment, typeRoots的意思是使用全局可用的类型,而不是应导入的类型。尝试改用path mapping

{
  "compilerOptions": {
    "baseUrl": ".", // baseUrl is required for paths to work
    "paths": {
      "*": ["src/@types/*"]
    },
    // other options...