Typescript TS2364:赋值表达式的左侧无效
Typescript TS2364:赋值表达式的左侧无效,typescript,ecmascript-6,Typescript,Ecmascript 6,a是一个可变数组,为什么我不能分配给它 福茨 导出let a:any[]; 酒吧 从'/foo'导入{a}; a=[5,6,7]; 一个包含一个可变数组,因此您可以对其进行变异: a.splice(0, a.length, 5, 6, 7); console.log(a); 但是,bar中的a是导入的绑定,不能重新分配。这就是为什么它是一个语法错误 但是,您可以在foo中指定a,它的行为就像一个普通变量。如果您希望能够更改原始范围(foo.ts)内数组的值,则可以执行以下操作: export
a
是一个可变数组,为什么我不能分配给它
福茨
导出let a:any[];
酒吧
从'/foo'导入{a};
a=[5,6,7];
一个
包含一个可变数组,因此您可以对其进行变异:
a.splice(0, a.length, 5, 6, 7);
console.log(a);
但是,bar
中的a
是导入的绑定,不能重新分配。这就是为什么它是一个语法错误
但是,您可以在
foo
中指定a
,它的行为就像一个普通变量。如果您希望能够更改原始范围(foo.ts
)内数组的值,则可以执行以下操作:
export var a = {
arr: []
}
然后在bar.ts
中:
import {a} from './foo';
a.arr = [5,6,7];
事实上,这也适用于
const
。我以前使用过一个对象,这就是为什么我没有得到这个错误…是的,const
可以正常工作,因为你不需要更改引用中的内容。“TypeError:无法读取未定义的属性'splice',检查生成的JS是否为foo.ts它是空的,只有一个“use strict”代码>line@AT:啊,对不起,我被字体符号弄糊涂了。您必须执行导出:any[]=[…]
当然可以实际导出数组。