typescript类与继承

Easter79
• 阅读 481
  1 /*
  2 1、vscode配置自动编译
  3 
  4     1.第一步   tsc --inti 生成tsconfig.json   改 "outDir": "./js",  
  5 
  6 
  7     2、第二步 任务 - 运行任务  监视tsconfig.json
  8 
  9 
 10 2、typeScript中的数据类型
 11 
 12     typescript中为了使编写的代码更规范,更有利于维护,增加了类型校验,在typescript中主要给我们提供了以下数据类型
 13 
 14 
 15         布尔类型(boolean)
 16         数字类型(number)
 17         字符串类型(string)
 18         数组类型(array)
 19         元组类型(tuple)
 20         枚举类型(enum)
 21         
 22         任意类型(any)
 23         null 和 undefined
 24         void类型
 25         never类型
 26 
 27 3、typeScript中的函数
 28 
 29     3.1、函数的定义
 30     3.2、可选参数
 31     3.3、默认参数
 32     3.4、剩余参数
 33     3.5、函数重载
 34     3.6、箭头函数  es6
 35 4、typeScript中的类
 36 
 37     4.1 类的定义
 38     4.2 继承
 39     4.3 类里面的修饰符
 40     4.4 静态属性 静态方法
 41     4.5 抽象类 继承 多态
 42 
 43     
 44 */
 45 
 46 
 47 //1、ts中类的定义
 48 
 49     /*
 50     es5:
 51 
 52         function Person(name){
 53 
 54             this.name=name;
 55 
 56             this.run=function(){
 57 
 58                 console.log(this.name)
 59             }
 60         }
 61 
 62         var p=new Person('张三');
 63 
 64         p.run()
 65     */
 66 
 67 
 68   /*
 69         ts中定义类:
 70 
 71 
 72             class Person{
 73 
 74                 name:string;   //属性  前面省略了public关键词
 75 
 76                 constructor(n:string){  //构造函数   实例化类的时候触发的方法
 77                     this.name=n;
 78                 }
 79 
 80                 run():void{
 81 
 82                     alert(this.name);
 83                 }
 84 
 85             }
 86             var p=new Person('张三');
 87 
 88             p.run()
 89   
 90   */
 91 
 92 
 93 
 94     /*
 95     class Person{
 96 
 97         name:string; 
 98 
 99         constructor(name:string){  //构造函数   实例化类的时候触发的方法
100             this.name=name;
101         }
102 
103         getName():string{
104 
105             return this.name;
106         }
107         setName(name:string):void{
108 
109             this.name=name;
110         }
111     }
112     var p=new Person('张三');
113 
114     alert(p.getName());
115 
116 
117     p.setName('李四');
118 
119 
120     alert(p.getName());
121 
122 */
123 
124 
125 
126 
127 
128 //2、ts中实现继承  extends、 super
129 
130 
131     // class Person{
132 
133     //     name:string;
134 
135     //     constructor(name:string){
136     //         this.name=name;
137     //     }
138 
139     //     run():string{
140 
141     //         return `${this.name}在运动`
142     //     }
143     // }
144     // // var p=new Person('王五');
145     // // alert(p.run())
146 
147 
148     // class Web extends Person{
149     //     constructor(name:string){
150 
151     //         super(name);  /*初始化父类的构造函数*/
152     //     }
153     // }
154 
155 
156     // var w=new Web('李四');
157     // alert(w.run());
158 
159 
160 
161 
162 
163 
164     //ts中继承的探讨  父类的方法和子类的方法一致
165 
166         // class Person{
167 
168         //     name:string;
169 
170         //     constructor(name:string){
171         //         this.name=name;
172         //     }
173 
174         //     run():string{
175 
176         //         return `${this.name}在运动`
177         //     }
178         // }
179         // // var p=new Person('王五');
180         // // alert(p.run())
181 
182 
183         // class Web extends Person{
184         //     constructor(name:string){
185 
186         //         super(name);  /*初始化父类的构造函数*/
187         //     }
188         //     run():string{
189 
190         //         return `${this.name}在运动-子类`
191         //     }
192         //     work(){
193 
194         //         alert(`${this.name}在工作`)
195         //     }
196         // }
197 
198 
199         // var w=new Web('李四');
200         // // alert(w.run());
201 
202         // // w.work();
203 
204         // alert(w.run());
205 
206 
207 
208 
209 
210 
211 
212 
213 
214 // 3 类里面的修饰符  typescript里面定义属性的时候给我们提供了 三种修饰符
215 
216 /*
217     public :公有          在当前类里面、 子类  、类外面都可以访问
218     protected:保护类型    在当前类里面、子类里面可以访问 ,在类外部没法访问
219     private :私有         在当前类里面可以访问,子类、类外部都没法访问
220 
221     属性如果不加修饰符 默认就是 公有 (public)
222 
223 */
224 
225 
226 
227 //public :公有          在类里面、 子类  、类外面都可以访问
228 
229 
230             //   class Person{
231 
232             //         public name:string;  /*公有属性*/
233 
234             //         constructor(name:string){
235             //             this.name=name;
236             //         }
237 
238             //         run():string{
239 
240             //             return `${this.name}在运动`
241             //         }
242             //     }
243             //     // var p=new Person('王五');
244             //     // alert(p.run())
245 
246 
247             //     class Web extends Person{
248             //         constructor(name:string){
249 
250             //             super(name);  /*初始化父类的构造函数*/
251             //         }
252             //         run():string{
253 
254             //             return `${this.name}在运动-子类`
255             //         }
256             //         work(){
257 
258             //             alert(`${this.name}在工作`)
259             //         }
260             //     }
261 
262             //     var w=new Web('李四');
263 
264             //     w.work();
265 
266 
267         //类外部访问公有属性
268 
269 
270                 //   class Person{
271 
272                 //     public name:string;  /*公有属性*/
273 
274                 //     constructor(name:string){
275                 //         this.name=name;
276                 //     }
277 
278                 //     run():string{
279 
280                 //         return `${this.name}在运动`
281                 //     }
282                 // }
283 
284                 // var  p=new Person('哈哈哈');
285 
286                 // alert(p.name);
287 
288 
289 
290 
291 
292 //protected:保护类型    在类里面、子类里面可以访问 ,在类外部没法访问
293 
294 
295             //   class Person{
296 
297             //         protected name:string;  /*公有属性*/
298 
299             //         constructor(name:string){
300             //             this.name=name;
301             //         }
302 
303             //         run():string{
304 
305             //             return `${this.name}在运动`
306             //         }
307             //     }
308                 // var p=new Person('王五');
309                 // alert(p.run())
310 
311 
312                 // class Web extends Person{
313                 //     constructor(name:string){
314 
315                 //         super(name);  /*初始化父类的构造函数*/
316                 //     }                  
317                 //     work(){
318 
319                 //         alert(`${this.name}在工作`)
320                 //     }
321                 // }
322 
323                 // var w=new Web('李四11');
324 
325                 // w.work();
326 
327                 // alert( w.run());
328 
329 
330                 
331         //类外外部没法访问保护类型的属性
332 
333 
334                 // class Person{
335 
336                 //     protected name:string;  /*保护类型*/
337 
338                 //     constructor(name:string){
339                 //         this.name=name;
340                 //     }
341 
342                 //     run():string{
343 
344                 //         return `${this.name}在运动`
345                 //     }
346                 // }
347 
348                 // var  p=new Person('哈哈哈');
349 
350                 // alert(p.name);
351 
352 
353 
354 
355 
356 // private :私有        在类里面可以访问,子类、类外部都没法访问
357             
358 
359                 // class Person{
360 
361                 //     private name:string;  /*私有*/
362 
363                 //     constructor(name:string){
364                 //         this.name=name;
365                 //     }
366 
367                 //     run():string{
368 
369                 //         return `${this.name}在运动`
370                 //     }
371                 // }
372 
373 
374                 // class Web extends Person{
375 
376                 //     constructor(name:string){
377                 //         super(name)
378                 //     }
379 
380                 //     work(){
381 
382                 //         console.log(`${this.name}在工作`)
383                 //     }
384                 // }
385 
386 
387 
388     class Person{
389 
390         private name:string;  /*私有*/
391 
392         constructor(name:string){
393             this.name=name;
394         }
395 
396         run():string{
397 
398             return `${this.name}在运动`
399         }
400     }
401 
402     var p=new Person('哈哈哈');
403 
404     alert(p.run());
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
2年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
Easter79 Easter79
2年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
4个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k