首页 > 其他分享 >四、typescript类属性的封装

四、typescript类属性的封装

时间:2022-09-27 23:13:03浏览次数:59  
标签:typescript aaa name age number 封装 public 属性

类属性的封装:通过属性的修饰符实现

  • private:只有在类的内部进行访问和修改
  • public:可以在任意位置访问和修改。默认时public
  • protected:可以在当前类和当前类的子类中访问和修改

属性的修饰符,如果是private,那么在类的外边通过getter 和 setter 方法 来存取属性;

 1 class MyClass {
 2     public _name: string
 3     private _age: number
 4     
 5     constructor(){
 6         this._name="aa";
 7         this._age=12;
 8     }
 9     /**
10      * 读取属性
11      * ts中的getter方式
12      * @returns 
13      */
14     get age(){
15         return this._age;
16     }
17     /**
18      * 设置属性
19      * ts中的setter方式
20      * @param value 
21      */
22     set age(value:number){
23         this._age = value;
24     }
25 }

调用方式:

1 const aaa = new MyClass();
2 aaa._name="q";
3 console.log(aaa.age);//调用getter   12
4 aaa.age=2;//调用setter 
5 console.log(aaa);// {_name: 'q', _age: 2}

 

类的简略写法:

1 class C{
2     constructor(public name:string,public age:number){
3        
4     }
5 }

等同于:

1 class C{
2     name:string;
3     age:number;
4     constructor(name:string,age:number){
5         this.age =age;
6         this.name=name;
7     }
8 }

 

标签:typescript,aaa,name,age,number,封装,public,属性
From: https://www.cnblogs.com/lixiuming521125/p/16736326.html

相关文章

  • TypeScript工具类 Partial 和 Required 的详细讲解
    场景描述:场景描述:一个接口(IPerson)有很多个的字段,可能有几百。而且这些字段都是必须的。我们需要使用这个接口,但是我又不可能使用它的全部。可能只会使用几个。我还必......
  • GB/T28181-2016基于RTP的视音频数据封装和技术实现
    首先我们先回顾下相关技术规范,看看基于RTP的音视频数据PS封装。C.1基于RTP的视音频数据PS封装基于RTP的PS封装首先按照ISO/IEC13818-1:2000将视音频流封装成PS包,再将PS包......
  • Spring MVC框架:第四章:属性域使用(request域、session域、application域)
    第六节属性域使用(request域、session域、application域)1.request域在SpringMVC中,当我们想把一个对象存入请求域有很多种操作方式,用哪一个都可以。①使用Model对象@R......
  • element ui 二次封装上传附件的组件
    因为elementui上传组件的代码很长,在项目中关于上传的代码过于冗余,因此我二次封装了一个上传附件的组件:项目中使用:1<!--附件-->2   <el-form-item......
  • 创建VO类来封装多表查询的结果
    VO:ValueObject,值对象。当进行SELECT查询时,查询的结果数据包含多张表的内容,此时查询的结果集不能使用现有的POJO实体类来接收。解决方法:重新去构建一个新对象,这个对象用于......
  • 小程序接口请求的初次封装
    我们在写微信小程序中不管是用原生的微信开发者工具还是用uniapp来开发都需要用到数据的请求,在页面中大量的使用请求无疑会造成代码的冗余,也会给后期的维护带来很大的难......
  • jQuery中发起 ajax 请求,自己封装get请求
    jQuery中发起ajax请求参数:1.请求地址   2.参数  3.回调函数(参数为响应数据)//get请求参数拼接到url中$.get("http//127.0.0.1:8000",{a:100,b:200},......
  • 多视图属性网络异常检测系列一
    论文《DeepAnomalyDetectiononAttributedNetworks》近期会对多视图属性网络异常检测系列进行学习记录这篇虽然不是多视图的,但可以说是属性网络上异常检测的典型,已......
  • vue中,html中调用methods中的方法修改data中的属性值会引起死循环
    问题描述在引入vue的html页面中,html语句中调用methods中的方法修改data中的属性值,会导致页面陷入死循环。问题原理触发条件(二者需都满足)1:methods中有修改data属性值的......
  • uni-app属性值的动态绑定
    1.问题使用传统的方法给标签的属性动态绑定数据报错。2.错误重现2.1错误代码<imagesrc="{{imgeSrc}}"></image>2.2错误信息ModuleError(from./node_modules......