代码之家  ›  专栏  ›  技术社区  ›  Dancrumb

如何使typescript获取声明文件?

  •  0
  • Dancrumb  · 技术社区  · 7 年前

    我的文件 src/auth/ManagementAPI.ts 使用Auth0。我需要使用我自己的申报文件并创建 src/@types/auth0.d.ts .

    但是,当我跑步时 ts-node ,我得到这个错误:

    TSError: ⨯ Unable to compile TypeScript:
    auth/ManagementAPI.ts(1,69): error TS7016: Could not find a declaration file for module 'auth0'. '/Users/danrumney/WebstormProjects/ohana/node_modules/auth0/src/index.js' implicitly has an 'any' type.
      Try `npm install @types/auth0` if it exists or add a new declaration (.d.ts) file containing `declare module 'auth0';
    

    我更新了我的 tsconfig.json 要包含的文件:

    "typeRoots": [
        "./node_modules/@types",
        "./src/@types"
    ]
    

    我的申报文件如下:

    declare module 'auth0' {
      /*...*/
    }
    

    为什么这份声明没有收到?

    我在这里创建了一个示例存储库: https://bitbucket.org/ohanapediatrics/so-demo/src/master/

    1 回复  |  直到 7 年前
        1
  •  1
  •   Matt McCutchen    7 年前

    对于 typeRoots 加载声明文件的机制,它需要命名 index.d.ts 放在一个 子目录 其中一个目录的 字体根 选项;见 documentation . 基于 泰伯罗茨 在存储库中设置,可以将文件放在 src/types/auth0/index.d.ts .

    上面的方法是可行的,但是由于您的声明文件正在声明一个模块,因此最好设置模块解析来查找声明文件,而不是使用 泰伯罗茨 ,主要用于全局声明。要做到这一点,要么使用 baseUrl and paths 或创建一个 package.json 名为的本地NPM包的文件 @types/auth0 把包裹登记在你的主袋里 包装袋 使用相对路径的文件。

    推荐文章