ts进阶(一)

ts进阶

1、字符串字面量类型和类型别名都是使用type进行定义;

2、元组

(1)简单例子

let tom:[string,number] = ['Tom',25]

当直接对元组类型的变量进行初始化或者赋值的时候,需要提供所有元组类型中指定的项

(2)越界的元素

当添加越界的元素时,它的类型会被限制为元组中每个类型的联合类型

let tom:[string,number];
tom=['Tom',25];
tom.push('male');
tom.push(true);//报错

3、枚举

枚举类型用于取值被限定在一定范围内的场景,比如一周只有七天,颜色限定为红绿蓝等

(1)简单的例子

枚举使用enum关键字来定义:

enum Days {Sun,Mon,Tue,Wed,Thu,Fri,Sat};

枚举成员会被赋值为从0开始递增的数字,同时也会对枚举值到枚举名进行反向映射

enum Days {Sun,Mon,Tue,Wed,Thu,Fri,Sat};
console.log(Days['Sun'] === 0);//true

(2)手动赋值

也可以给枚举项手动赋值

enum Days {Sun = 7,Mon = 1,Tue,Wed,Thu,Fri,Sat};
console.log(Days['Sun'] === 7);//true
console.log(Days['Mon'] === 1);//true
console.log(Days['Tue'] === 2);//true

(3)常数项和计算所得项

(4)常数枚举

常数枚举是使用const enum 定义的枚举类型

const enum Directions {
 Up,
 Down,
 Left,
 Right
}
let directions = [Directions.Up,Directions.down,Directions.Left,Directions.Right]

常数枚举与普通枚举的区别是,它会在编译阶段被删除,并且不能包含计算成员

(5)外部枚举

外部枚举是使用declare enum 定义的枚举类型

declare enum Directions {
 Up,
 Down,
 Left,
 Right
}
let directions = [Directions.Up,Directions.down,Directions.Left,Directions.Right]

4、类

(1)public private和protected

public修饰的属性或方法是公有的,可以在任何地方被访问到,默认所有的属性和方法都是public

private修饰的属性或者方法是私有的,不能在声明它的类的外部访问

proctected修饰的属性或者方法是受保护的,他和private类似,区别是它在子类中也是允许被访问的

当构造函数修饰为private时,该类不允许被继承或者实例化

当构造函数修饰为protected时,该类只允许被继承

(2)参数属性

(3)resdonly

只读属性关键字,只允许出现在属性声明或索引签名或构造函数中

注意如果readonly和其他访问修饰符同时存在的话,需要写在其后面

(4)抽象类

abstract用于定义抽象类和其中的抽象方法

抽象类是不允许被实例化的

抽象类中的抽象方法必须被子类实现

(5)类的类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值