typescript - 如何在 TypeScript 中声明只读数组元组?

标签 typescript

我们可以在 TypeScript 中声明类型元组,例如,使用类型注释 [string, number] .这意味着一个包含 2 个元素的数组,其中第一个元素需要是一个字符串,第二个元素是一个数字。

我们也可以用ReadonlyArray<string>声明只读数组这意味着只读字符串数组。

现在我想要一个像第一个示例中那样的只读元组,但我希望它像第二个示例中那样是只读的。我该如何声明?

最佳答案

自类型[string, number]已经是 Array ,你可以简单地使用:

Readonly<[string, number]>

例子:

let tuple: Readonly<[string, number]> = ['text', 3, 4, 'another text'];

tuple[0] = 'new text'; //Error (Readonly)

let string1: string = tuple[0]; //OK!
let string2: string = tuple[1]; //Error (Type number)
let number1: number = tuple[0]; //Error (Type string)
let number2: number = tuple[1]; //OK!
let number3: number = tuple[2]; //Error (Type any)

关于typescript - 如何在 TypeScript 中声明只读数组元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42696098/

相关文章:

typescript - 如何创建由一个账户签名但使用另一个账户支付的 Hedera 交易

javascript - Typescript/Javascript 自定义属性装饰器

typescript - Angular2 - 订阅服务变量变化

javascript - 如何返回正确匹配的数组?

javascript - 当在组件的根目录中提供服务时如何监视服务方法

angular - 如何在 Ionic2 中单击时更改按钮颜色?

typescript - 为什么在这种情况下界面合并不起作用?

javascript - 类型 'MyObject' 上不存在属性 - typescript 扩展

angular - 单击确认按钮关闭 swal

javascript - Ionic 2导入查找js而不是ts文件