a
是一个可变数组,为什么我不能分配给它?
export let a: any[];
import {a} from './foo';
a = [5,6,7];
答案 0 :(得分:4)
a
包含一个可变数组,因此你可以改变它:
a.splice(0, a.length, 5, 6, 7);
console.log(a);
a
中的 bar
是导入的绑定,但无法重新分配。这就是为什么这是一个语法错误。
但是,您可以在a
中分配foo
,但它只是表现得像普通变量。
答案 1 :(得分:3)
如果您希望能够在原始范围(foo.ts
)内更改数组的值,那么您可以执行以下操作:
export var a = {
arr: []
}
然后在bar.ts
:
import {a} from './foo';
a.arr = [5,6,7];