/*
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. Python中msgpack库的使用

    msgpack用起来像json,但是却比json快,并且序列化以后的数据长度更小,言外之意,使用msgpack不仅序列化和反序列化的速度快,数据传输量也比json格式小,msgpack同样支持多种语言 ...

  2. 写一个小程序实现win系统定时锁屏

    貌似很久没写程序了,随便用C语言实现吧 #include<stdio.h> #include<stdlib.h> int main(){ system("rundll ...

  3. dup等复制文件描述符函数

    [root@bogon code]# cat b.c #include<stdio.h> #include<error.h> #include<unistd.h> ...

  4. scanf() gets() fgets()使用注意事项

    1.scanf() 遇到'\n'停止从输入缓冲区中接收,接收完后‘\n’还存在于缓冲区中.当输入的字符数少于缓冲区大小时,字符后面有自动补上‘\0’,当输入字符大于缓冲区时,也直接拷贝到缓冲中,因此缓 ...

  5. (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

    问题说明80端口被占用,用netstat -nlp |grep :80命令看看有什么进程占用了80端口,发现是httpd进程. 没想到安装了两个apache,我安装apache2.4的时候删除了2.2 ...

  6. 当 1117 遇到 MLCC 后

    当 1117 遇到 MLCC 后 AMS1117 很多人用过吧,但是当大容量的 MLCC 时会出现什么呢? 会出现问题,而且严重的问题,输出纹波会变大,会自激,会有声音出来. 这是很多工程师没有注意的 ...

  7. Git中清除远程仓库HTTPS认证信息的方法

    Git远程仓库同步时用户认证有两种方式:HTTPS.SSH,对应的Git仓库上有两个不同的链接地址. https方式使用账号和密码授权,简单易用,便于进行权限细分管理,而且防火墙一般会打开 http ...

  8. 利用JSON将Map转换为类对象

    Map类型做为一种常见的Java类型,经常在开发过程中使用,笔者最近遇到要将Map对象做为一种通用的参数变量,下传到多个业务类方法中,然后在各个业务类方法中将Map转换为指定类对象的情况.如何将Map ...

  9. MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号;一般,表名与字段名都使用反引号。

    MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号:一般,表名与字段名都使用反引号.

  10. webpack 4:默认配置

    webpack 4:默认配置 entry 默认: ./src/index.js(注意: 路径必须带上./): entry: './src/index.js', output 默认最后路径: ./dis ...