我想让一个数组充满其他包含字符串或数字的数组:
var mainarray: [] = [];
xy.forEach(function (foo) {
var subarray: [] = ['test', 'test', 3];
mainarray.push(subarray);
});
但是我收到此错误:
Type '[string, string, number]' is not assignable to type '[]'.
Argument of type '[]' is not assignable to parameter of type 'never'.
我该如何声明变量mainarray和subarray以便起作用?
(稍后我使用此数组创建jsonstring)
答案 0 :(得分:3)
将数组的类型设置为:
var mainarray: Array<number | string>[] = [];
答案 1 :(得分:0)
不太确定您要在这里完成什么,因此如果没有上下文,我无法提供更好的答案,但是您可以这样做:
let mainarray = [];
let xy = [1,2];
function test() {
xy.forEach(x => {
mainarray = [ ...mainarray, ['test', 'test', 3]];
})
console.log(mainarray);
}
答案 2 :(得分:0)
在尝试运行此代码段时,我收到另一条错误消息:
类型'[字符串,字符串,数字]'不能分配给类型'[]'。 属性“长度”的类型不兼容。 类型'3'不能分配给类型'0'。
因此,您的类型声明应为string[] |number[]
或(string | number)[]
,而不仅仅是[]
。
因此,您的代码段应如下所示:
var mainarray: [] = [];
xy.forEach(function (foo) {
var subarray: string[] | number[] = ['test', 'test', 3];
orders.push(subarray);
});