javascript - การรวม namespace ของ Esbuild & Typescript เข้ากับ bundle ไม่ทำงาน
ฉันมีโค้ดดังนี้ ฉันต้องการใช้ namespace เดียว Namespace1 สำหรับคลาสทั้งหมด แต่ฉันไม่รู้ว่าจะรวมมันโดยไม่ใช้การนำเข้าโมดูลอย่างไร ฉันคิดว่าถ้าทุกอย่างทำงานได้ทั้งใน IDE และ TS (npx tsc) ก็คงไม่มีปัญหาในการบันเดิล ถ้าฉันใช้โมดูล การประกอบใน TS จะไม่ถูกต้อง การตรวจจับชนิด เช่น someMethod (in: Namesace1.Class1) จะไม่ทำงาน
ฉันรวมทุกอย่างใน esbuild มีวิธีทำแบบนี้ไหม? เป็นไปได้ไหมที่จะรวมไฟล์ที่จำเป็นลงในบันเดิลโดยไม่ต้อง import? เป็นไปได้หรือว่านี่เป็นข้อผิดพลาดของ esbuild?
class1.ts:
namespace Namespace1 {
export class Class1 {
}
}
class2.ts:
namespace Namespace1 {
export class Class2 {
}
}
index.ts:
let class1 = new Namespace1.Class1();
console.log(class1);
let class2 = new Namespace1.Class2();
console.log(class2);
ใน IDE (Visual Studio) และ TSC ตรวจสอบแล้วไม่มีปัญหา แต่ผลลัพธ์ของ bundle ดูเหมือนจะเป็นแบบนี้ - การนิยามคลาสหายไปทั้งหมด:
(() => {
// src/index.tsx
var class1 = new Namespace1.Class1();
console.log(class1);
var class2 = new Namespace1.Class2();
console.log(class2);
})();
//# sourceMappingURL=index.js.map