TypeScript 中 Const 和 Readonly 的区别?枚举和常量枚举的区别?
本文转载自微信公众号「三分钟学前端」,和R和常作者sisterAn 。区别区别转载本文请联系三分钟学前端公众号。枚举
TypeScript 中 const 与 readonly 的量枚区别?
TypeScript 中不可变量的实现方法有两种:
使用 ES6 的 const 关键字声明的值类型 被 readonly 修饰的属性TypeScript 中 readonly
TypeScript 中的只读修饰符,可以声明更加严谨的和R和常可读属性
通常在 interface 、 Class 、区别区别 type 以及 array 和 tuple 类型中使用它,枚举也可以用来定义一个函数的量枚参数
// type type Foo = { readonly bar: number; }; // const 确保 config 不能够被改变了 const foo: Foo = { bar: 123 }; // 不能被改变 foo.bar = 456; // Error: foo.bar 为仅读属性 // 函数 function foo(config: { readonly num: number }) { // .. } const config = { num: 123 } foo(config)区别
const 用于变量, readonly 用于属性 const 在运行时检查,和R和常 readonly 在编译时检查 const 声明的区别区别变量不得改变值,这意味着,免费信息发布网枚举const 一旦声明变量,量枚就必须立即初始化,和R和常不能留到以后赋值; readonly 修饰的区别区别属性能确保自身不能修改属性,但是枚举当你把这个属性交给其它并没有这种保证的使用者(允许出于类型兼容性的原因),他们能改变 const foo: { readonly bar: number; } = { bar: 123 }; function iMutateFoo(foo: { bar: number }) { foo.bar = 456; } iMutateFoo(foo); console.log(foo.bar); // 456此时,需要 iMutateFoo 明确的表示,他们的参数不可修改,那么编译器会发出错误警告:
function iTakeFoo(foo: Foo) { foo.bar = 456; // Error: bar 属性只读 } const 保证的不是变量的值不得改动,而是变量指向的源码库那个内存地址不得改动,例如使用 const 变量保存的数组,可以使用 push , pop 等方法。但是如果使用 ReadonlyArray 声明的数组不能使用 push , pop 等方法。枚举和常量枚举的区别?
枚举和常量枚举(const枚举)
使用枚举可以清晰地表达意图或创建一组有区别的用例
// 枚举 enum Color { Red, Green, Blue } // 常量枚举 const enum Color { Red, Green, Blue }区别
枚举会被编译时会编译成一个对象,可以被当作对象使用 const 枚举会在 typescript 编译期间被删除,const 枚举成员在使用的地方会被内联进来,避免额外的性能开销 // 枚举 enum Color { Red, Green, Blue } var sisterAn = Color.Red // 会被编译成 JavaScript 中的 var sisterAn = Color.Red // 即在运行执行时,它将会查找变量 Color 和 Color.Red
// 常量枚举 const enum Color { Red, Green, Blue } var sisterAn = Color.Red // 会被编译成 JavaScript 中的企商汇 var sisterAn = 0 // 在运行时已经没有 Color 变量来源:https://github.com/Advanced-Frontend/Daily-Interview-Question
相关文章
- 摘要:在电脑系统出现问题或需要更新时,重新安装操作系统是一个常见的解决方法。而使用光驱安装系统是一种较为传统的方式,但对于不熟悉的用户来说可能会有一些困惑。本文将详细介绍使用光驱安装系统...2025-11-04
- Windows 7系统是目前最主流的操作系统,目前Windows 7市场份额以及与经典流行十年之久的Winsows XP系统相持平,虽然安装Windows 7用户的不断增多,未来一段时间Windows2025-11-04
假如你经常在电脑前没日没夜的工作,并且为windows刺眼的白色对话框而发愁,今天就教Windows 7系统的保护色如何设置的方法,让你的眼睛有一片舒适柔和的桌面。 操作步骤:1在电脑桌2025-11-04
windows 764位系统安装Protel DXP 2004步骤详细图文教程
最近开了微机原理的课又被老师推荐这了个叫做DXP的软件,可以用来设计电路和进行仿真等,本文就为大家分享一篇Windows 764位系统安装Protel DXP 2004步骤详细图文教程,希望对大家有所2025-11-04OPPOR9Plus在VR方面的表现如何?(探索OPPOR9Plus在虚拟现实技术应用上的优势与不足)
摘要:近年来,随着虚拟现实VR)技术的发展,越来越多的人开始关注并追求更好的VR体验。作为一款备受关注的手机品牌,OPPOR9Plus在VR方面的表现备受期待。本文将探索OPPOR9P...2025-11-04
windows 7 64位系统如何添加删除windows组件有些功能用不到
Windows 7 64位旗舰版系统如何添加删除windows组件分享给大家,windows组件是系统在制作时候自带的一些功能,比如游戏、邮件以及一些组件等,不过里面有一些功能我们用不到或者想要添加一2025-11-04


最新评论