readonly 主要用于类属性,确保类的实例在创建后,这些属性的值不会被改变。它也可以用于接口,以表示接口的实现者必须提供一个只读属性。 3.语法和用途: const 声明一个不可变的变量绑定。它告诉TypeScript编译器该变量引用一个不能被重新赋值的值。 readonly 修饰类属性时,通常与类的构造函数一起使用,以确保在对象...
总的来说,const和readonly在TypeScript中各有其用,它们的主要区别在于const用于确保变量的引用不变,而readonly用于确保对象的特定属性不变。
a = ro as number[]; 1. readonly和const的区别:主要判断是用作变量还是属性,作为变量是使用const,作为属性时使用readonly。 3.额外的属性检查 interface Config { color?: string; width?: number; } function create(config: Config ): { color: string; area: number } { // ... } let my...
as const 会让 TypeScript 将 FormTypes 对象中的属性标记为只读(readonly)。这意味着,你不能对这些属性进行修改。此外,as const 还会让 TypeScript 为每个属性推断出一个更精确的类型,即它们的字面量类型,而不是一般的字符串类型。所以,FormTypes 的类型会被推断为: { readonly personal: "personal"; readon...
let a: number[] = [1,2,3]; let o: ReadonlyArray<number>= a; 重写: a = ro as number[]; 3.3readonly 和 const 的区别 作为变量使用的话使用const,若作为属性则使用readonly ... 2020.1.18...
const tuple = ['你好', '元组', 17] as const// ^^^ = readonly ["你好", "元组", 17]复制代码 1. 可以看到这样就声明了一个元组,之前的话就得一个个写元组元素声明。 映射元组 假设依旧有上面的tuple变量,现在有个需求需要把tuple变量的每个元素都转成Promise<元素>类型,而这时候就需要使用映射元组...
[],因为array是可以改变元素的constarr=[1,'hi']asconsttypeArr=typeofarr// readonly [1,'hi']// 函数使用示例functionf(a:number,b:number){returna+b}functionsum(...arr:number[]){// 正确constx=[1,2]asconstf(...x)// 报错f(...arr)// 报错: x是 number[],但f只接受两个参数const...
readonly不可改变的,定义完后就不能修改,是不是和const有点像,不过const是针对变量,readonly是针对属性 下面我们把id添加上readonly 4.函数funtion 我们要规定函数的输入类型和返回类型 在形参后面接冒号声明 形参的类型,在()后面冒号声明 返回值类型
/* { readonly a: 1; readonly b: 2; } */ type objType2 = typeof obj2;const arr2 = [1, 2, 3] as const;type arrType2 = typeof arr2; // readonly [1, 2, 3]// 但是加上 as const 之后推到的类型是带有 readonly 的,所以通过模式匹配的时候也需要加上 readonly 的修饰才行...