如何从TypeScript中的数组中获取只读项类型?
如何从数组常量中获取如何从TypeScript中的数组中获取只读项类型?,typescript,typescript-generics,Typescript,Typescript Generics,如何从数组常量中获取只读项数组 const基本值类型=[{ 值:'数字', 标签:“编号” },{ 值:'布尔', 标签:“布尔” }]; 键入ReadonlyItemArray=??? 类型ReadOnlyBasicValueTypes=ReadonlyItemArray; /* ↓↓↓↓ ReadOnlyBasicValue类型=( {值:'number',标签:'number'} |{值:'boolean',标签:'boolean'} ) */ 更新: 我发现我可以将每一项都设置为con
只读项数组
const基本值类型=[{
值:'数字',
标签:“编号”
},{
值:'布尔',
标签:“布尔”
}];
键入ReadonlyItemArray=???
类型ReadOnlyBasicValueTypes=ReadonlyItemArray;
/*
↓↓↓↓
ReadOnlyBasicValue类型=(
{值:'number',标签:'number'}
|{值:'boolean',标签:'boolean'}
)
*/
更新:
我发现我可以将每一项都设置为const
:
const基本值类型=[{
值:'数字',
标签:“编号”
}作为康斯特{
值:'布尔',
标签:“布尔”
}as const];
类型BasicValueTypes=类型BasicValueTypes[number]['value'];
//BasicValueTypes=“number”|“boolean”
但是我仍然想知道是否可以设计上面的
ReadonlyItemArray
type?要使基本值类型不可变(只读),可以使用作为常量
常量基本值类型=[{
值:'数字',
标签:“编号”
}, {
值:'布尔',
标签:“布尔”
}]作为常量;
要获取类型,可以使用typeof
:
type Immutable=基本值类型的类型
要创建文字类型,可以使用:
type Literal=[数字,字符串]
此外,还有内置的只读阵列:
类型Arr=ReadonlyArray
常数arr:arr=['a','b']
arr.push('c')//错误
但你不能这样做:
const ReadOnlyBasicValueTypes=ReadonlyItemArray;
因为类型不是构造函数,就像在F#中一样,它只是类型。TS编译器将从源代码中删除它们,您将收到纯js
更新
const基本值类型=[{
值:'数字',
标签:“编号”
},{
值:'布尔',
标签:“布尔”
}]作为常量;
基本类型=基本值类型的类型;
type Item=Basic[number]//检查此类型
要使基本值类型
不可变(只读),可以使用作为常量
常量基本值类型=[{
值:'数字',
标签:“编号”
}, {
值:'布尔',
标签:“布尔”
}]作为常量;
要获取类型,可以使用typeof
:
type Immutable=基本值类型的类型
要创建文字类型,可以使用:
type Literal=[数字,字符串]
此外,还有内置的只读阵列:
类型Arr=ReadonlyArray
常数arr:arr=['a','b']
arr.push('c')//错误
但你不能这样做:
const ReadOnlyBasicValueTypes=ReadonlyItemArray;
因为类型不是构造函数,就像在F#中一样,它只是类型。TS编译器将从源代码中删除它们,您将收到纯js
更新
const基本值类型=[{
值:'数字',
标签:“编号”
},{
值:'布尔',
标签:“布尔”
}]作为常量;
基本类型=基本值类型的类型;
type Item=Basic[number]//检查此类型
对不起,它应该是类型
而不是常量
。我编辑了这篇文章。我做了一个更新,它应该是type
而不是const
。我编辑了这篇文章。我做了更新