6
我想重新導出一個變量,使用es6模塊語法,然後改變它,看到反映在最終導入的變化。但它沒有按預期工作。請參見下面的示例:Typescript es6模塊重新導出可變變量綁定
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"
}
}
結果運行:
$ node out/c.js
1
1
我想到最後的console.log,以便反映更新打印2,但事實並非如此。但是,如果我編譯與巴貝爾相同的例子它的作品。重新導出可變變量綁定不能與打字機一起工作,還是我只是做錯了什麼?
這是否意味着打字稿不完全支持ES6模塊語法?有一個解決方法是很好的,但我寧願不必爲變量添加前綴。但如果這是唯一的方式,我想我沒有選擇。 –
根據[this](https://github.com/Microsoft/TypeScript/issues/1215#issuecomment-168963929)它可以工作,如果生成的代碼是es5特定的,我認爲這可能是因爲我已經設置目標= ES5。 –