IT学习站-137zw.com

more +资源更新Forums

more +随机图赏Gallery

Zabbix 4.0 企业级自动化监控系统实战,完整版Zabbix 4.0 企业级自动化监控系统实战,完整版
Java程序员面试笔试真题与解析 完整pdf扫描版Java程序员面试笔试真题与解析 完整pdf扫描版
价值348元 RabbitMQ消息中间件技术精讲2018视频教程 百度云价值348元 RabbitMQ消息中间件技术精讲2018视频教程 百度云
10节课让你成为滚床单高手  强烈推荐 屌丝的福音10节课让你成为滚床单高手 强烈推荐 屌丝的福音
Spring Boot编程思想(核心篇) PDF 电子书 百度云 网盘下载Spring Boot编程思想(核心篇) PDF 电子书 百度云 网盘下载
最新流出的传智博学谷黑马python5.0课程最新流出的传智博学谷黑马python5.0课程

TypeScript语法基础

TypeScript语法基础

[复制链接]
馥琳 | 显示全部楼层 发表于: 2019-11-14 08:15:01
馥琳 发表于: 2019-11-14 08:15:01 | 显示全部楼层 |阅读模式
查看: 145|回复: 0

你还没有注册,无法下载本站所有资源,请立即注册!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
什么是TypeScript?

TypeScript是微软开发的一门编程语言,它是JavaScript的超集,即它基于JavaScript,拓展了JavaScript的语法,遵循ECMAScript规范(ES6/7/8+)。
TypeScript = Type + Script(标准JS),它可以编译成纯JavaScript,已经存在的JavaScript也可以不加改动地在TS的环境上运行。
目前, Angular 已经使用 TypeScript 重构了代码,另一大前端框架 Vue 的3.0版本也将使用 TypeScript 进行重构。在可预见的未来,TypeScript 将成为前端开发者必须掌握的开发语言之一。
为什么要使用TypeScript?


  • 提升开发效率。
  • 提升可维护性。
  • 提升线上运行质量。TS有编译期的静态检查,加上IDE的智能纠错,尽可能的将BUG消灭在编译器上,线上运行时质量更稳定可控。
  • 可读性强,适合团队协作
TypeScript开发环境
当然,我们可以配置webpack,开启node服务,进行热更新开发。
TypeScrip数据类型

学习数据类型前,要先明白两个概念:
强类型和弱类型

强类型指一个变量一旦声明,就确定了它的类型,此后不能改变它的类型。弱类型可以随便转换。TypeScript是强类型语言,JavaScript是弱类型语言。
静态类型和动态类型

静态类型语言:编译阶段检查所有数据的类型。动态类型语言:将检查数据类型的工作放在程序的执行阶段,也就是说,只有在程序执行时才能确定数据类型。
基本类型

在ES6的基础上,新增了void、any、never、元组、枚举、高级类型。
布尔、数字、字符串另外,ts字符串有一些特性:数组
TypeScript的数组,所有元素只能是同一种数据类型。元组
元组是特殊的数组,限制了元素的个数和类型。函数

  • 函数的声明定义(三种方式)
  • 函数传参

  • 可选参数必须放在必选参数的后面
  • 使用ES6的默认参数,不需要声明类型
  • 使用ES6的剩余参数,需要声明类型
对象symbolundefind、nullvoid
是一种操作符,可以让任意一个表达式返回undefined。之所以引进void,是因为undefined不是一个保留字,可以在局部作用域内将其覆盖掉。any
any 表示变量可以为任何类型,在TS中一般不用它。如果使用它,也便失去了使用TS的意义,与前面不建议为变量声明多种类型是一个道理。never
表示永远不会有返回值的类型枚举类型 enum
枚举主要来定义一些常量,方便记忆,减少硬编码,增加可读性。
基本使用:    注意:不能修改枚举成员的值
枚举成员的分类:常量枚举和枚举类型interface接口

接口可以用来约束对象、函数、类的结构和类型,是一种契约,并且声明之后不可改变。
1.定义 (interface关键字)
2.内部规范了什么?

通过上述例子,看到接口规范了成员名称、成员的的类型、值的类型。
此外,还可以规范成员属性。
3.成员属性

可选属性和只读属性4.索引签名

当不确定接口中有多少属性的时候,可以用索引签名。一般通过数字和字符串来索引,也可以两者混合索引。※ 注意值的类型要兼容
  (1)索引签名和普通成员
    如果设置了[x: string]: string,不能再设置y: number。如果设置了[x: string]: number不能再设置y: string
  (2)索引签名和索引签名
    如果多个索引签名的值不同,要注意相互兼容,比方any和string
5.函数传参时如何绕过类型检查

如果在接收的后端数据中,比约定好的接口多了一个字段,能否通过类型检查?会不会报错?我们有三种方法:

  • 通过接口定义变量,函数调用时传入变量名(只对必要的约定条件进行检查,多余的数据不做检查)
  • 类型断言(所有约定都不做类型检查,失去了ts类型检查的意义)
  • 索引签名
第一种方法已经在上面做了示例,我们看后面两种方法如何做:在什么场景下用什么方法,需要我们熟知这三种方法的特性
6.接口和函数

接口可以用来定义函数的传参、返回值的类型此外,还可以用类型别名来定义函数我们再来总结一下函数的声明定义方式:

  • 普通声明定义(function、箭头函数)
  • 接口定义类型
  • 类型别名
另外,接口内也可以定义函数class类

关于类的成员:

1.属性必须有类型注解
2.属性必须有初始值
3.属性修饰符:
  (1)公有 public
    所有成员默认都是public。可以通过各种方式访问。
  (2)私有 private
    私有成员只能在类中被访问,不能被实例和子类访问。如果给构造函数加上私有属性,表示这个类既不能被实例化也不能被继承。
  (3)受保护 protected
    受保护成员只能在类和子类中访问,不能通过它们的实例访问。如果给构造函数加上受保护属性,表示这个类不能被实例化只能被继承。也就是声明了一个基类。
  (4)静态 static
    静态成员只能通过类名和子类名访问,不能被实例访问。
  (5)只读 readonly
    只读成员不能被修改。
4.以上属性除了可以修饰成员,也可以修饰构造函数中的参数(static除外)。这样可以省去构造函数之中外的类型注解,简化代码。抽象类和多态

所谓抽象类(abstract),是只能被继承,不能被实例化的类。
抽象方法

在抽象类中,不必定义方法的具体实现,这就构成了抽象方法。在抽象类中使用abstratct关键字修饰后,不能定义该方法的具体实现。
抽象方法的好处是:实现多态。 this

我们可以在方法中返回this,可以进行链式调用,非常方便。类和接口

类类型接口


  • 接口约束类成员有哪些属性,以及它们的类型
  • 类在实现接口约束的时候,必须实现接口中描述的所有内容。可以多,不可以少
  • 接口只能约束类的公有成员,即不可以将接口中规定的成员置为非公有的属性
  • 接口不能约束类的构造函数
接口继承接口
接口继承类

可以理解为,将类转化成接口。接口集成类的时候,不仅抽离了公有成员,也抽离了私有成员、受保护成员。
如何理解呢?这么做的目的是限定接口的使用范围,并不会真正为这个接口添加类的私有和受保护属性,而这个限定范围就是:只能由子类来实现这个接口。


来源:http://www.137zw.com
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
137zw.com IT学习站致力于免费提供精品的java技术教程和python技术教程,CCNA书籍/资料/CCNP书籍/资料教程/CCIE书籍/资料/H3C学习/认证/一级建造师考试/微软学习/认证/包括基础教程和高级实战教程,同时也提供分享网站源码下载和互联网相关一系列的技术教程,我们想做的就是让知识分享更有价值!(IT学习站官方唯一域名地址:www.137zw.com 请谨防假冒网站!)本站所有资源全部收集于互联网或网友自行分享,分享目的仅供大家学习与参考,如无意中侵犯您的合法权益,请联系本站管理员进行删除处理!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

浙ICP备19022368号-1|Archiver|手机版|IT学习站-137zw.com

GMT+8, 2020-7-11 00:38 , Processed in 0.268876 second(s), 33 queries .

快速回复 返回顶部 返回列表