🧾 Environment
npx tsgo -v
Version 7.0.0-dev.20250526.1
🧠 Summary
tsgo correctly handles extends A in a namespace context (as fixed in PR #66), but still fails to resolve namespace-scoped symbols like A, Afunc across files in other contexts such as:
- function return types
- constructor calls
- parameter types
- direct function calls
This leads to incorrect JavaScript output and runtime errors.
✅ Expected Behavior
All references to A and Afunc should be qualified as game.A and game.Afunc, matching how tsc behaves.
🔬 Minimal Reproduction
a.ts
namespace game {
export class A {
func() {
console.log('A.func');
}
}
export function Afunc() {
console.log('Afunc');
}
}
#### b.ts
namespace game {
export class B extends A {
override func() {
console.log('B.func');
}
}
Afunc();
}
#### b.js compiled by tsgo
var game;
(function (game) {
class B extends A { // expect game.A
func() {
console.log('B.func');
}
}
game.B = B;
Afunc(); // expect game.Afunc
})(game || (game = {}));
🧾 Environment
🧠 Summary
tsgocorrectly handlesextends Ain a namespace context (as fixed in PR #66), but still fails to resolve namespace-scoped symbols likeA,Afuncacross files in other contexts such as:This leads to incorrect JavaScript output and runtime errors.
✅ Expected Behavior
All references to
AandAfuncshould be qualified asgame.Aandgame.Afunc, matching howtscbehaves.🔬 Minimal Reproduction
a.ts