Typescript - as const 详细介绍
warning:
这篇文章距离上次修改已过445天,其中的内容可能已经有所变动。
as const 是 TypeScript 3.4 引入的一个特性,它用于创建一个具有常量枚举属性的对象字面量类型。这意味着在使用 as const 时,对象中的每个属性的值和原始类型都会被保留。
const enumValues = {
a: 1,
b: 2,
c: 'three'
} as const;
type EnumValues = typeof enumValues;
// 类型为:
// EnumValues = {
// readonly a: 1;
// readonly b: 2;
// readonly c: "three";
// }在上面的例子中,enumValues 的类型是一个对象,其中包含三个属性:a、b 和 c。每个属性的值和类型都是固定的,这就意味着你不能更改这些属性的值,也不能给它们赋予不同的类型。
as const 也可以用于创建元组,但是元组中的每个元素都会被认为是常量,并且其类型会被固定。
const tuple = [1, 2, 3] as const;
type Tuple = typeof tuple;
// 类型为:
// Tuple = readonly [1, 2, 3]在这个例子中,tuple 的类型是一个包含三个数字字面量类型元素的只读数组。
as const 还可以用于保留数组和对象的原始类型和值。
const array = [1, 2, 'three'] as const;
type ArrayType = typeof array;
// 类型为:
// ArrayType = readonly [1, 2, "three"]在这个例子中,array 的类型是一个包含数字和字符串字面量的只读数组。
评论已关闭