如何让 Typescript 获取声明文件?
How do I make Typescript pick up a declaration file?
我的文件 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/
对于加载声明文件的 typeRoots
机制,需要将其命名为 index.d.ts
并放置在所列目录之一的 子目录 中在 typeRoots
选项中;见documentation。根据存储库中的 typeRoots
设置,您可以将文件放在 src/types/auth0/index.d.ts
.
以上方法可行,但由于您的声明文件正在声明一个模块,因此最好设置模块解析来查找您的声明文件,而不是使用主要用于全局的 typeRoots
声明。为此,请使用 baseUrl
and paths
或为名为 @types/auth0
的本地 npm 包创建一个 package.json
文件,然后使用相对路径在主 package.json
文件中注册该包。
我的文件 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/
对于加载声明文件的 typeRoots
机制,需要将其命名为 index.d.ts
并放置在所列目录之一的 子目录 中在 typeRoots
选项中;见documentation。根据存储库中的 typeRoots
设置,您可以将文件放在 src/types/auth0/index.d.ts
.
以上方法可行,但由于您的声明文件正在声明一个模块,因此最好设置模块解析来查找您的声明文件,而不是使用主要用于全局的 typeRoots
声明。为此,请使用 baseUrl
and paths
或为名为 @types/auth0
的本地 npm 包创建一个 package.json
文件,然后使用相对路径在主 package.json
文件中注册该包。