TypeScript JavaScript
语言 面向对象编程语言 面向脚本编程
是否支持可选参数 支持 不支持
是否支持静态类型 支持 不支持
是否支持接口 支持 不支持

TS:是JS的超集,即对JS的扩展,主要提供了类型系统和对ES6+的支持,但TS最终会转换为js代码去执行。

特点:

1. 始于JavaScript, 归于JavaScript

2. 强大的类型系统

3. 先进的JavaScript

基础类型:
1. boolean
2. number
3. String
4. undefined和null(默认情况下null和undefined是所有类型的子类型)
5. 数组
6. 元组:表示一个已知元素数量和类型的数组,各元素的类型不必相同
7. object:表示非原始类型,也就是除number、string、boolean之外的类型
8. 枚举:为一组数值赋予友好的名字
9. any:不清楚类型的变量指定一个类型
10. void
11. 联合类型(Union Types) (表示取值可以为多种类型中的一种)
12. 类型断言:可以用来手动指定一个值的类型。
13. 类型推断:TS会在没有明确的指定类型的时候推测出一个类型,
a. 定义变量时赋值了,推断为对应的类型。
b. 定义变量时没有赋值,推断为any类型。 类:
1. 继承: 类从基类中继承了属性和方法,通过 extends 实现。
2. 修饰符: public(默认)、private(不能在声明它的类的外部访问)、protected(子类可以访问)。
3. 存取器: TypeScript支持通过getters/setters来截取对对象成员的访问,它能帮助你有效的控制对对象成员的访问。
4. 静态属性:静态属性:是类对象的属性;非静态属性:是类的实例对象的属性。
5. 抽象类: 不能被实例化,用abstract修饰。 接口:(接口是对象的状态(属性)和行为(方法)的抽象(描述))核心原则之一是对值所具有的结构进行类类检查。 1. readonly VS const: 判断该用readonly还是const的方法是看要把它作为变量使用还是作为一个属性。作为变量使用的话用const,若作为属性则使用readonly。 2.类类型:实现接口
一个类可以实现多个接口
一个接口可以继承多个接口
3. 接口也可以相互继承
#函数类型 泛型:指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定具体类型的一种特性。 重载:函数名相同,而形参不同的多个函数。
在JS中,由于弱类型的特点和形参与实参可以不匹配,是没有函数重载这一说的,
但在TS中,与其它面向对象的语言(如Java)就存在此语法。
什么是构造函数,其作用:
构造函数是一种特殊的方法,主要用于创建对象时初始化对象,即给对象成员属性赋值。和new关键字一起使用,而TS的构造函数通过关键字constructor实现,并用this关键字来访问当前类中的属性和方法。
为什么要用TS:
1. TS在编译时就可以暴露问题,而JS则在运行时才可以发现。
2. TS作为一种强类型,明确知道数据类型,代码的可读性高,便于理解。
什么是泛型:
在定义时不去指定类型,等使用时才去指定。
什么是实例化:
一般创建一个类后并不能直接对属性和方法进行访问,必须对类进行实例化,需要创建一个对象。创建对象通过new关键字来实现,通过‘.’来访问属性和方法。
什么是方法重写:
子类可以直接继承父类的方法,直接使用,但有时子类并不想原封不动的继承父类中的方法,而是需要做一定的修改,就是重写。重写的作用在于子类可以根据需要定义自己的特定行为,即子类能够根据需要实现父类方法。
什么是可索引类型接口:
一般用来约束数组和对象
never和void的区别:
void表示没有任何类型(可以赋值为null和undefined);
never表示不包含任何值,永远没有值;
void返回值类型的函数可以正常运行,而never的则无法执行,也无法终止,会抛出异常。

TypeScript 学习总结的更多相关文章

  1. TypeScript学习指南--目录索引

    关于TypeScript: TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程. TypeS ...

  2. TypeScript 学习一 参数,函数,析构表达式

    1,TypeScript是由谷歌开发的,并且新出的Angular2框架就是谷歌公司由TypeScript语言编写的,所以现在TypeScript是有微软和谷歌一起支持的: 2,TypeScript在j ...

  3. TypeScript 学习资料

    TypeScript 学习资料: 学习资料 网址 TypeScript Handbook(中文版)(推荐) https://m.runoob.com/manual/gitbook/TypeScript ...

  4. Typescript 学习笔记七:泛型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  5. Typescript 学习笔记六:接口

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  6. Typescript 学习笔记五:类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  7. Typescript 学习笔记四:回忆ES5 中的类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  8. Typescript 学习笔记二:数据类型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  9. Typescript 学习笔记三:函数

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  10. Typescript 学习笔记一:介绍、安装、编译

    前言 整理了一下 Typescript 的学习笔记,方便后期遗忘某个知识点的时候,快速回忆. 为了避免凌乱,用 gitbook 结合 marketdown 整理的. github地址是:ts-gitb ...

随机推荐

  1. python机器学习——SVM支持向量机

    背景与原理: 支持向量机是一种用来解决分类问题的算法,其原理大致可理解为:对于所有$n$维的数据点,我们希望能够找到一个$n$维的直线(平面,超平面),使得在这个超平面一侧的点属于同一类,另一侧的点属 ...

  2. 编译configure常用参数详解

    ./configure常用参数解释: 具体通过–help来查看具体支持什么功能.有时候编译不通过,可能依赖一些库,如果这些库关联的功能我们不需要,可以通过---disable-*lib来取消相关库的编 ...

  3. 【flask】建站经验随笔

    [前端] 1.前端table标签中每行使用template中 {%for i in rows%} {% endfor %}来生成之后,如果想对每行进行一个button处理,此时如果使用jquery的$ ...

  4. 【APT】响尾蛇(SideWinder)Hta文件自动解密C2

    前言 一个用于从SideWinder APT组织常用的hat文件中解密C2链接地址的Python脚本,示例代码对一些老的hat文件效果比较好,新的样本可能需要根据实际情况修改下,最初是用于对VT上命中 ...

  5. Nexus5安装PostmarketOS(Alpine Linux)并装上Docker

    ​ Postmarket OS是一个基于Alpine Linux.能够安装到手机或其他移动设备上.当然linux deploy也可以使用SSH,但linux deploy运行在容器里.使用上会有些限制 ...

  6. windows 10 的VMware workstation Pro突然变成英文界面

    电脑的VMware虚拟机界面是中文版的,后来在捣弄些电脑配置,突然变成英文版界面了. 后面发现原来是区域格式选错了:正确的格式是下图红框

  7. mapboxGL2离线化应用

    https://blog.csdn.net/GISShiXiSheng/article/details/120300679?spm=1001.2014.3001.5501

  8. withRouter

    withRouter 可以加工一般组件,让一般组件具备路由组件所特有的api,比如this.props.history withRouter的返回值是一个新组件 import {withRouter} ...

  9. sql-labs less34--less41

    less 34 汉 addslashes() 函数返回在预定义的字符前添加反斜杠的字符串. 预定义字符是: 单引号(') 双引号(") 反斜杠(\) NULL 提示:该函数可用于为存储在数据 ...

  10. Transformer_Detection-(DETR) 引入视觉领域的首创DETR (ECCV2020)

    End-to-End Object Detection with Transformers paper: https://link.zhihu.com/?target=https%3A//arxiv. ...