/*
1、vscode配置自动编译 1.第一步 tsc --inti 生成tsconfig.json 改 "outDir": "./js", 2、第二步 任务 - 运行任务 监视tsconfig.json 2、typeScript中的数据类型 typescript中为了使编写的代码更规范,更有利于维护,增加了类型校验,在typescript中主要给我们提供了以下数据类型 布尔类型(boolean)
数字类型(number)
字符串类型(string)
数组类型(array)
元组类型(tuple)
枚举类型(enum) 任意类型(any)
null 和 undefined
void类型
never类型 3、typeScript中的函数 3.1、函数的定义
3.2、可选参数
3.3、默认参数
3.4、剩余参数
3.5、函数重载
3.6、箭头函数 es6
4、typeScript中的类 4.1 类的定义
4.2 继承
4.3 类里面的修饰符
4.4 静态属性 静态方法
4.5 抽象类 继承 多态 */ //1、ts中类的定义 /*
es5: function Person(name){ this.name=name; this.run=function(){ console.log(this.name)
}
} var p=new Person('张三'); p.run()
*/ /*
ts中定义类: class Person{ name:string; //属性 前面省略了public关键词 constructor(n:string){ //构造函数 实例化类的时候触发的方法
this.name=n;
} run():void{ alert(this.name);
} }
var p=new Person('张三'); p.run() */ /*
class Person{ name:string; constructor(name:string){ //构造函数 实例化类的时候触发的方法
this.name=name;
} getName():string{ return this.name;
}
setName(name:string):void{ this.name=name;
}
}
var p=new Person('张三'); alert(p.getName()); p.setName('李四'); alert(p.getName()); */ //2、ts中实现继承 extends、 super // class Person{ // name:string; // constructor(name:string){
// this.name=name;
// } // run():string{ // return `${this.name}在运动`
// }
// }
// // var p=new Person('王五');
// // alert(p.run()) // class Web extends Person{
// constructor(name:string){ // super(name); /*初始化父类的构造函数*/
// }
// } // var w=new Web('李四');
// alert(w.run()); //ts中继承的探讨 父类的方法和子类的方法一致 // class Person{ // name:string; // constructor(name:string){
// this.name=name;
// } // run():string{ // return `${this.name}在运动`
// }
// }
// // var p=new Person('王五');
// // alert(p.run()) // class Web extends Person{
// constructor(name:string){ // super(name); /*初始化父类的构造函数*/
// }
// run():string{ // return `${this.name}在运动-子类`
// }
// work(){ // alert(`${this.name}在工作`)
// }
// } // var w=new Web('李四');
// // alert(w.run()); // // w.work(); // alert(w.run()); // 3 类里面的修饰符 typescript里面定义属性的时候给我们提供了 三种修饰符 /*
public :公有 在当前类里面、 子类 、类外面都可以访问
protected:保护类型 在当前类里面、子类里面可以访问 ,在类外部没法访问
private :私有 在当前类里面可以访问,子类、类外部都没法访问 属性如果不加修饰符 默认就是 公有 (public) */ //public :公有 在类里面、 子类 、类外面都可以访问 // class Person{ // public name:string; /*公有属性*/ // constructor(name:string){
// this.name=name;
// } // run():string{ // return `${this.name}在运动`
// }
// }
// // var p=new Person('王五');
// // alert(p.run()) // class Web extends Person{
// constructor(name:string){ // super(name); /*初始化父类的构造函数*/
// }
// run():string{ // return `${this.name}在运动-子类`
// }
// work(){ // alert(`${this.name}在工作`)
// }
// } // var w=new Web('李四'); // w.work(); //类外部访问公有属性 // class Person{ // public name:string; /*公有属性*/ // constructor(name:string){
// this.name=name;
// } // run():string{ // return `${this.name}在运动`
// }
// } // var p=new Person('哈哈哈'); // alert(p.name); //protected:保护类型 在类里面、子类里面可以访问 ,在类外部没法访问 // class Person{ // protected name:string; /*公有属性*/ // constructor(name:string){
// this.name=name;
// } // run():string{ // return `${this.name}在运动`
// }
// }
// var p=new Person('王五');
// alert(p.run()) // class Web extends Person{
// constructor(name:string){ // super(name); /*初始化父类的构造函数*/
// }
// work(){ // alert(`${this.name}在工作`)
// }
// } // var w=new Web('李四11'); // w.work(); // alert( w.run()); //类外外部没法访问保护类型的属性 // class Person{ // protected name:string; /*保护类型*/ // constructor(name:string){
// this.name=name;
// } // run():string{ // return `${this.name}在运动`
// }
// } // var p=new Person('哈哈哈'); // alert(p.name); // private :私有 在类里面可以访问,子类、类外部都没法访问 // class Person{ // private name:string; /*私有*/ // constructor(name:string){
// this.name=name;
// } // run():string{ // return `${this.name}在运动`
// }
// } // class Web extends Person{ // constructor(name:string){
// super(name)
// } // work(){ // console.log(`${this.name}在工作`)
// }
// } class Person{ private name:string; /*私有*/ constructor(name:string){
this.name=name;
} run():string{ return `${this.name}在运动`
}
} var p=new Person('哈哈哈'); alert(p.run());

typescript类与继承的更多相关文章

  1. JavaScript是如何工作的:深入类和继承内部原理 + Babel和TypeScript 之间转换

    这是专门探索 JavaScript 及其所构建的组件的系列文章的第 15 篇. 如果你错过了前面的章节,可以在这里找到它们: JavaScript 是如何工作的:引擎,运行时和调用堆栈的概述! Jav ...

  2. JavaScript是如何工作的:深入类和继承内部原理 + Babel和TypeScript之间转换

    现在构建任何类型的软件项目最流行的方法这是使用类.在这篇文章中,探讨用 JavaScript 实现类的不同方法,以及如何构建类的结构.首先从深入研究原型工作原理,并分析在流行库中模拟基于类的继承的方法 ...

  3. How Javascript works (Javascript工作原理) (十五) 类和继承及 Babel 和 TypeScript 代码转换探秘

    个人总结:读完这篇文章需要15分钟,文章主要讲解了Babel和TypeScript的工作原理,(例如对es6 类的转换,是将原始es6代码转换为es5代码,这些代码中包含着类似于 _classCall ...

  4. typescript - 4.es5与typescript的类与继承

    ES5中的类与类的继承 (1)简单的类 function Person() { this.name = '张三'; this.age = 20; } var p = new Person(); ale ...

  5. TypeScript(5)类、继承、多态

    前言 对于传统的 JavaScript 程序我们会使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员使用这些语法就有些棘手,因为他们用的是基于类的继承并且对象是由类构建出来 ...

  6. typescript 类(类的定义、继承、修饰符、抽象类)

    代码: // 本节内容 // 1.类的定义 // 2.类的继承 // 3.访问修饰符 // 4.静态属性和静态方法 // 5.抽象类和多态 // js // function Person(name) ...

  7. 从C#到TypeScript - 类

    总目录 从C#到TypeScript - 类型 从C#到TypeScript - 高级类型 从C#到TypeScript - 变量 从C#到TypeScript - 接口 从C#到TypeScript ...

  8. typescript中类的继承

    typescript中类的继承用到的是:extends和super 先看一下typescript中类的写法: class Demo{ //类的属性 name:string; age:number; / ...

  9. ES5中的类与继承

    最近在重新复习TypeScript,看到类这块的时候自然会和ES5中的类写法进行对比加深印象. 发现ES5的类与继承一些细节还是挺多的,时间久了容易忘记,特此记录下. 首先是ES5的类定义,这没什么好 ...

随机推荐

  1. MySQL 5.7--复制延迟监控

    ========================================== SHOW PROCESSLIST方式 为保证二进制日志在从库的执行时间和顺序的正确性,二进制日志中的每个语句都设置 ...

  2. debezium sql server 集成

    debezium 是一个方便的cdc connector 可以帮助我们解决好多数据实时变更处理.数据分析.微服务的数据通信 从上次跑简单demo到现在,这个工具是有好多的变更,添加了好多方便的功能,支 ...

  3. java程序源码

    //Account.java package pers.liqin.accounlist; public class Account { private String accountID; priva ...

  4. 我发起了一个 .Net 平台上的 产生式编程 开源项目 GP.Net

    大家好 , 我发起了一个 .Net 平台上的 产生式编程 开源项目 GP.Net . 我们可以先看看一个网友的 代码生成器 项目 : <.Net 代码生成器 for PostgreSql> ...

  5. taro 事件处理

    https://nervjs.github.io/taro/docs/event.html Taro 元素的事件处理和 DOM 元素的很相似.但是有一点语法上的不同: Taro 事件绑定属性的命名采用 ...

  6. node api 之:Buffer

    在 ECMAScript 2015 引入 TypedArray 之前,JavaScript 语言没有读取或操作二进制数据流的机制. Buffer 类被引入作为 Node.js API 的一部分,使其可 ...

  7. dependencies、devDependencies、webpack打包 的区别与联系

    为什么要在dependencies.devDependencies中声明依赖? 答:保证任何人在(或者你自己在其他设备上)对这个项目进行修改(开发)时,通过npm install就能获取同样的开发环境 ...

  8. Centos中iptables和firewall防火墙开启、关闭、查看状态、基本设置等(转)

    iptables防火墙 1.基本操作 # 查看防火墙状态 service iptables status   # 停止防火墙 service iptables stop   # 启动防火墙 servi ...

  9. Jmeter中Websocket协议支持包的使用

    Jmeter中Websocket协议支持包的使用(转) 参考的来源是国外一篇文章,已经整理成pdf格式(http://yunpan.cn/cFzwiyeQDKdh3 (提取码:9bcf)) 转自:ht ...

  10. 设计模式-责任链模式Chain of Responsibility)

    一.定义 职责链模式是一种对象的行为模式.在职责链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道链 ...