javascript - 如何创建数组并为 typescript 中的任何索引赋值

标签 javascript arrays typescript

如何在 typescript 中实现以下 JavaScript 代码。

var childs = [];
childs[34] = [12,23,54,65];
childs[122] = [43,56,23,31];
childs[212343] = [345,643,24,745];
console.log(childs);

最佳答案

您的代码已经是有效的 typescript 代码,因为 typescript 是 javascript 的超集。

但是,typescript 允许您拥有类型,因此在这种情况下您可以这样做:

var childs: number[][] = [];
childs[34] = [12,23,54,65];
childs[122] = [43,56,23,31];
childs[212343] = [345,643,24,745];
console.log(childs);

( code in playground )

请注意,我添加的唯一内容是 childs 的类型 (number[][]),也可以这样写:

var childs: Array<number[]> = [];
// or
var childs: Array<Array<number>> = [];

如果您尝试向数组添加任何其他内容,您将收到编译器错误:

childs.push(4); // error: Argument of type '4' is not assignable to parameter of type 'number[]'
childs.push([2, "4"]); // error: Argument of type '(string | number)[]' is not assignable to parameter of type 'number[]'

关于javascript - 如何创建数组并为 typescript 中的任何索引赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42885220/

相关文章:

java - 如何确定一个数组是否包含单独数组中的所有整数

java - 在java中将对象数组从一个方法传递到另一个方法

angular - 如何使用 Jasmine 测试 TypeScript 抽象类

javascript - 如何在 TypeScript 中导出对象?

typescript - 为什么我不能返回通用 'T' 来满足 Partial<T>?

JavaScript/WebSQL : how to cancel query

javascript - 更新部分映射的 ko 模型

javascript - 减少 Promise.all?

javascript - 制作覆盖图像 map 的更好方法?

c++ - 使用 n[c -'0' ] 的真正用途是什么?