gpt4 book ai didi

arrays - 我可以指定数组不可分配给 Record 吗?

转载 作者:行者123 更新时间:2023-12-04 01:35:57 25 4
gpt4 key购买 nike

我有一个类型为 Record<number, MyType> 的成员.目前,我还可以为其分配一个数组。我明白了:数组是一个对象( typeof [] => 'object' ),索引是键。但是,是否可以告诉编译器我不希望将数组传递给我的 Record<int, WhateverType> 类型的变量? ?

const myRecord: Record<number, MyType> = []; // <= would like to have an error here

最佳答案

定制NumberRecord type 可以通过强制排除数组,即没有 length属性存在(类似于 ArrayLike 内置声明):

const t = {
0: "foo",
1: "bar"
}

const tArr = ["foo", "bar"]

type NumberRecord<T> = {
length?: undefined; // make sure, no length property (array) exists
[n: number]: T;
}

const myRecordReformed1: NumberRecord<string> = tArr; // error
const myRecordReformed2: NumberRecord<string> = t // works

Code sample

关于arrays - 我可以指定数组不可分配给 Record 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59563815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com