Es6 modülü sözdizimini kullanarak bir değişkeni yeniden dışa aktarmaya çalışıyorum, sonra değiştirin ve son içe aktarmada yansıyan değişikliği görün. Ama beklendiği gibi çalışmıyor. Aşağıdaki örneğe bakın:Typescript es6 modülleri değiştirilebilen değişken bağlayıcısını yeniden dışa aktarma
a.ts
export var a = 1;
export function changeA() { a = 2; }
b.ts
export * from './a';
c.ts
import { a, changeA } from './b';
console.log(a); // 1
changeA();
console.log(a); // Expected 2 but get 1
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"outDir": "out"
}
}
çalışmasının
Sonuç:
$ node out/c.js
1
1
Final console.log güncellemesini yansıtmak için 2 yazdırmak için bekliyoruz ama öyle değil. Ancak, aynı örneği babel ile derlersek çalışır. Değişken değişken bağları yeniden dışa aktarma, yazı tipiyle çalışmaz mı yoksa sadece yanlış bir şey mi yapıyorum?
Bu, yazı tipinin ES6 modülünün sözdizimini tam olarak desteklemediği anlamına mı geliyor? Çalışmak için iyi bir şey ama ben değişkenleri öneki yapmak zorunda kalmamayı tercih ederim. Ama işe yarayacak tek yol buysa sanırım başka seçeneğim yok. –
[this] 'e göre (https://github.com/Microsoft/TypeScript/issues/1215#issuecomment-168963929) oluşturulan kod es5'e özgüyse çalışabilir, çünkü hedef belirlediğimden olabilir = ES5. –