在TypeScript 中,as const 是一种类型断言的用法,它用于告诉编译器将某个位置的类型视为一个常量(const)类型。这在 TypeScript 的类型守卫和类型细化中非常有用,尤其是在处理字面量类型或确保某个位置的值不会被修改时。 基本用法 当你使用 as const 时,你告诉 TypeScript 编译器,某个位置的值是常量,不应该...
constperson={name:"Alice",age:30,};constnewPerson={...person,age:30asconst,// 将 age 属性标记为只读};// newPerson.age = 35; // 这会导致错误,因为 age 是只读 深层对象的情况 对于深层对象,as const也能保证其所有嵌套属性为只读,而const只能保证第一层的变量不可重新赋值(使用Object.freeze)。
as const是 TypeScript 中的一个用于修饰符,它可以被用来修改类型推断的行为。 当as const修饰符用在变量声明或表达式的类型上时,它会强制 TypeScript 将变量或表达式的类型视为不可变的(immutable)。这意味着,如果你尝试对变量或表达式进行修改,TypeScript 会报错。 例如: const foo = ['a', 'b'] as const...
} as const; 我在一个类中也有一个静态方法,它将接受一个设置对象和一个字符串,并返回一个由该字符串启用的所有设置的字符串。 // NOTE: flags have "any" type static parseNames (flags: any, value: string): string { const hexNumber = parseInt(value, 16); const flagNames: string[] = [];...
在这里,as const会将readonlyColors的类型设置为只读对象数组,限制其内容不被修改。 3. 访问和使用该对象数组的值 处理完只读数组后,我们可以非常安全地使用它,比如显示每种颜色的名称。下面是一个简单的函数来列出这些颜色: // 打印所有颜色名称的函数functionprintColors(colorsArray:readonly{name:string;hex:strin...
🍀 当as const修饰符用在变量声明或表达式的类型上时,它会强制 TypeScript 将变量或表达式的类型视为不可变的(immutable)。这意味着,如果你尝试对变量或表达式进行修改,TypeScript 会报错。例如: constfoo = ['a','b']asconst; foo.push('c');//TypeScript 会报错,因为 foo 类型被声明为不可变的constbar...
理解'as const' 以下是一个没有 as const 的代码片段: 复制 const menu = { home: '/home', about: '/about', contact: '/contact' }; 1. 2. 3. 4. 5. 这个TypeScript的世界里,这个变量可以随心所欲地变化和改变。听起来很灵活,,但是这里有个陷阱。
menuConst.home = '/newHome'; 通过Object.freeze(),我们拥有了一个运行时概念,可以防止JavaScript对象的更改。然而,Object.freeze()并不影响 TypeScript 的类型推断。 另一方面,有了as const,TypeScript在编译时将对象视为不可变的,使你的类型检查更为严格,这有助于捕捉更多可能的错误。
let res:string = add(1,2) //error, number类型不能赋值给string类型 add("1",2); //error, 字符串1 不是number类型 add(1); //error, 只传一个参数,会显示没有给b传值 如果没有返回值的话,可以使用void表示没有返回值类型 function add(a: number, b: number):void{ ...