其他
TS 4.9 中的 accessor 到底有啥用?
欢迎你阅读 「《重学 TypeScript 3.0》」 系列教程,本系列教程会包含 TypeScript 基础知识、进阶知识、类型体操(精选)、设计模式、核心特性实战和开源项目源码解析 「6」 大专题的内容。
TypeScript 4.9 版本支持了 「auto-accessors(自动访问器)」 新特性,自动访问器的声明方式与类的属性一样,只是它们是使用 accessor
关键字声明。而 TypeScript 5.0 Beta 版本也带来了一个与 「auto-accessors」 相关的 「ClassAutoAccessorDecorator」 装饰器。本文阿宝哥会先介绍自动访问器的相关内容,然后再介绍新的 「ClassAutoAccessorDecorator」 装饰器。
class User {
accessor name: string;
constructor(name: string) {
this.name = name;
}
}
其实 accessor
自动访问器是语法糖,经过 TypeScript 编译器处理后,会生成一个 ECMAScript 私有类字段[1] 及相应的 get
和 set
访问器。
class User {
#name_accessor_storage;
get name() { return this.#name_accessor_storage; }
set name(value) { this.#name_accessor_storage = value; }
constructor(name) {
this.name = name;
}
}
在以上代码中,#name_accessor_storage
是 ECMAScript 私有类字段的语法。那么使用 #
定义的 ECMAScript 私有字段与 private
修饰符定义字段有什么区别呢?
❝提示:Android 平台 1 元 10 个微豆,iOS 平台 1 元 7 个微豆,购买时可切换平台充值。
❞