【发布时间】:2016-11-24 14:16:26
【问题描述】:
a 是一个可变数组,为什么不能赋值给它呢?
foo.ts
export let a: any[];
bar.ts
import {a} from './foo';
a = [5,6,7];
【问题讨论】:
a 是一个可变数组,为什么不能赋值给它呢?
export let a: any[];
import {a} from './foo';
a = [5,6,7];
【问题讨论】:
a 包含一个可变数组,因此您可以对其进行变异:
a.splice(0, a.length, 5, 6, 7);
console.log(a);
bar 中的a 然而,是一个导入的绑定,不能重新分配。这就是为什么它是一个语法错误。
您可以在foo 中分配给a,但它的行为就像一个普通变量。
【讨论】:
"use strict"; 行
export let a: any[] = […]; 才能实际导出数组。
如果您希望能够在原始范围 (foo.ts) 内更改数组的值,那么您可以执行以下操作:
export var a = {
arr: []
}
然后在bar.ts:
import {a} from './foo';
a.arr = [5,6,7];
【讨论】:
const。我之前使用过一个对象,这就是为什么我没有收到此错误...
const 可以正常工作,只要您不更改其中的引用即可。