【发布时间】:2021-04-04 08:42:41
【问题描述】:
我有以下 2 个文件:
文件src/helpers.ts:
const someHelperArray = ['value1', 'value2'] as const
module.exports = {
someHelperArray
}
文件src/car.ts:
const {
someHelperArray
} = require('./helpers')
在文件car.ts 中,当我将鼠标悬停在someHelperArray 上时,我得到了这个打字稿类型分辨率:const someHelperArray: any 而不是我预期的文字类型('value1' | 'value2')。本质上,打字稿无法识别来自另一个文件的导入变量的类型。我尝试更改 tsconfig.json 设置但没有任何帮助。如何让 typescript 识别从其他文件导入的类型?
这是我的tsconfig.ts:
{
"compilerOptions": {
"lib": ["dom", "es6", "scripthost", "esnext"],
"moduleResolution": "node",
"baseUrl": "src",
"watch": true,
"allowJs": true,
"esModuleInterop": true,
"module": "commonjs",
"sourceMap": true,
"inlineSources": true,
"allowSyntheticDefaultImports": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitAny": true,
"strictNullChecks": true,
"resolveJsonModule": true,
"experimentalDecorators": true
},
"exclude": ["node_modules", "**/*.spec.ts", "ts-out/**/*", "babel-out/**/*"]
}
【问题讨论】:
-
一旦我重构代码以使用 ES6 语法进行模块导入/导出,问题就消失了。
标签: javascript typescript types import export