我有一个简单的 NodeJS 库,它导出一些常量。在该库中,我们有以下设置:
lib/index.js
const SOME_EXAMPLE =
{
'AAA': ['BBB']
...
}
module.exports = {
SomeExample: SOME_EXAMPLE
}
lib/index.d.ts
export type SomeExample = Record<string, string[]>
我还有另一个仓库,它是一个 NodeJS 项目,我想在其中使用这个库。因此:
服务/src/index.js
import {SomeExample} from './the-lib
console.log(SomeExample)
服务/ts-config.json
... // This is just an extract to give an idea
"compilerOptions": {
"target": "es2022",
"module": "CommonJS",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"skipLibCheck": true,
...
启动服务时,打字稿会抛出
'SomeExample' only refers to a type, but is being used as a value
。
我做错了什么?
似乎我滥用了打字稿语法。解决方案是更新我的 index.d.ts 文件:
export const SomeExample : Record<string, string[]>
我现在正在导入正确的值。希望这对某人有帮助。