TypeScript 学习总结

TS:是JS的超集,即对JS的扩展,主要提供了类型系统和对ES6+的支持,但TS最终会转换为js代码去执行。
特点:
1. 始于JavaScript, 归于JavaScript
2. 强大的类型系统
3. 先进的JavaScript

TypeScript 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的则无法执行,也无法终止,会抛出异常。

原文链接:https://www.cnblogs.com/hechen-xuan/p/17264877.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:TypeScript 学习总结 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • javascript String 的扩展方法集合

    下面是关于“javascript String 的扩展方法集合”的完整攻略。 标准的 String 方法 JavaScript 中的 String 拥有许多标准的方法,例如 charAt()、substr()、slice()、toUpperCase() 等等。这些方法可以在 MDN 上找到详细的文档说明和使用示例。 扩展的 String 方法 除了标准的方法…

    JavaScript 2023年5月27日
    00
  • java 最新Xss攻击与防护(全方位360°详解)

    Java 最新Xss攻击与防护(全方位360°详解)攻略 什么是XSS攻击 XSS攻击是指攻击者向有漏洞的Web页面中插入恶意的代码(比如脚本),当用户浏览该页面时,攻击代码会被执行,从而实现攻击者想要的攻击目的。 XSS攻击的类型 XSS攻击的类型可以分为以下几类: 反射型XSS:注入的脚本在请求URL参数中,并将脚本注入到返回的响应中,被用户浏览器解析执…

    JavaScript 2023年6月11日
    00
  • Javascript中判断对象是否具有属性的5种方法分享

    以下是Javascript中判断对象是否具有属性的5种方法: 方法1:使用in运算符 in运算符可用于判断一个对象是否拥有特定属性。语法为:propName in objectName。 示例代码: const myObj = { name: "Alice", age: 30 }; console.log("name"…

    JavaScript 2023年5月27日
    00
  • js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解

    那我就为你介绍一下 Javascript 中几个常用字符串相关的方法。 1. substr substr() 方法用于截取字符串中的任意部分,并返回截取的结果。substr() 方法有两个参数,第一个参数是起始索引位置,第二个参数是截取的长度。如果不指定第二个参数,则截取到末尾。其语法如下: str.substr(start[, length]) 示例代码:…

    JavaScript 2023年5月28日
    00
  • 微信小程序引入Vant组件库过程解析

    下面是详细讲解如何在微信小程序中引入Vant组件库。 1. 确认小程序的基础库版本号 Vant组件库的版本以及对应的基础库版本可以在Vant官方文档中查看,确保你的小程序基础库版本符合要求。如果不符合要求,需要升级基础库版本。升级基础库版本需要注意,有可能会导致之前代码的兼容性问题,所以需要谨慎操作。 2. 在小程序项目中安装Vant组件库并引入 可以通过n…

    JavaScript 2023年6月11日
    00
  • js刷新页面方法大全

    下面是详细讲解 “JS 刷新页面方法大全” 的攻略: 一、使用 location.reload() 方法 location.reload() 方法可以重新加载当前文档(即刷新页面)。在不传递任何参数的情况下,它将以最新的内容重新加载当前URL。 // 简洁版 location.reload(); // 带有强制刷新参数的完整版 location.reload…

    JavaScript 2023年6月11日
    00
  • JavaScript中var与let的区别

    讲解一下JavaScript中var与let的区别,首先从定义入手。 定义 var是ES5时代定义的关键字,用于声明变量,可以声明全局变量或局部变量; let是ES6时代新增的关键字,用于声明块级作用域变量,只能在块级作用域中使用。 区别 var声明的变量存在变量提升,而let不存在。 变量提升是指变量在声明前部分代码就可以使用的行为。对于使用var声明的变…

    JavaScript 2023年5月28日
    00
  • javascript常用经典算法实例详解

    JavaScript常用经典算法实例详解 JavaScript常用经典算法实例涵盖了排序、查找、字符串处理等多个算法类型。下面将对其中的两个示例进行详细说明。 示例一:冒泡排序算法 冒泡排序是一种常见的排序算法,其基本思想是不断比较相邻两个元素的大小,将较大的元素向后移动,最终实现数组的升序排列。 下面是一个使用JavaScript实现冒泡排序的示例代码: …

    JavaScript 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部