我的文件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/
答案 0 :(得分:1)
要使typeRoots
机制加载声明文件,需要将其命名为index.d.ts
并将其放置在{{1}中列出的目录之一的子目录中}} 选项;请参阅documentation。根据存储库中的typeRoots
设置,您可以将文件放在typeRoots
上。
上面的方法可以工作,但是由于声明文件正在声明模块,因此最好设置模块分辨率来查找声明文件,而不是使用src/types/auth0/index.d.ts
,后者主要用于全局声明。为此,请使用baseUrl
and paths
或为名为typeRoots
的本地npm软件包创建package.json
文件,然后使用相对路径将软件包注册到主@types/auth0
文件中。 / p>