Microsoft/TypeScript
在 GitHub 查看Destructuring exported array with `require` causes error
Open
#44,658 创建于 2021年6月18日
BugDomain: JavaScriptHelp Wanted
仓库指标
- Star
- (48,455 star)
- PR 合并指标
- (平均合并 6天 17小时) (30 天内合并 9 个 PR)
描述
Bug Report
I'm progressively adding TypeScript to an existing JS codebase. In several of our files, there is an existing pattern of exporting arrays like so: module.exports = [A, serializeA].
When requiring and destructuring this export like const [A] = require('./a'), I get an unexpected error Module '"./a"' has no exported member 'A'. ts(2305) which I believe to be a bug.
🔎 Search Terms
module has no exported member TS2305
🕗 Version & Regression Information
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about
module.exports
⏯ Playground Link
Not sure how to repro this in a Playground work Workbench since I believe it requires files and exports/requries.
💻 Code
// a.js
class A {}
module.exports = [A]
// b.js
const [A] = require('./a') // Module '"./a"' has no exported member 'A'. ts(2305)
🙁 Actual behavior
The compiler shows an error
🙂 Expected behavior
The compiler shows no error and the exported array is correctly destructured and the type infered.