Microsoft/TypeScript

Destructuring exported array with `require` causes error

開放

#44,658 建立於 2021年6月18日

 (3 則留言) (1 個反應) (0 位負責人)TypeScript (13,395 個分叉)batch import
BugDomain: JavaScriptHelp Wanted

倉庫指標

星標
 (108,860 顆星)
PR 合併指標
 (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.

貢獻者指南