Destructuring exported array with `require` causes error
#44 658 ouverte le 18 juin 2021
Métriques du dépôt
- Stars
- (48 455 stars)
- Métriques de merge PR
- (Merge moyen 6j 17h) (9 PRs mergées en 30 j)
Description
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.