TypeScript入门——进阶内容

元组(Tuple)

元组合并了不同类型的对象

let cuteBoy: [string, number] = ['Cute Boy', 30]; // 直接初始化赋值不能缺少任何一项
let cuteBoy: [string, number];
cuteBoy[0] = 'CuteBoy'; // 声明后赋值可以只赋值一项

越界的元素项会被限制为元组的联合类型

枚举(Enum)

enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
Days["Sun"] === 0; //true
Days[0] === "Sun"; //true

该枚举将会被编译为

var Days;
(function(Days) {
	Days[Days["Sun"] = 0] = "Sun";
})(Days || (Days = {}))

手动赋值

enum Days {Sun = 3, Mon = 1, Tue, Wed, Thu, Fri, Sat};
Days["Tue"] === 2; // true,未赋值项将会从上一个枚举项递增
Days["Sun"] === 3; // false,被Wed覆盖,故要避免这种情况
Days["Wed"] === 3; // true

enum Days {Sun = 3, Mon = 1, Tue, Wed, Thu, Fri, Sat = <any>"S"}; // 用类型断言,枚举项可以不是数字

常数项和计算所得项

枚举两种类型:常数项(constant member)和计算所得项(computed member);

enum Color {Red, Green, Blue = "blue".length}; // 计算所得项,后面不能紧接未赋值项

常数项:
1.数字字面量
2.引用之前定义的常数枚举成员
3.带括号的常数枚举表达式
4.+,-, ~一元运算符应用于常数枚举表达式
5.二元运算符,常数枚举表达式作为其一个操作对象

常数枚举

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

常数枚举将会在编译后删除枚举,并且不能包含计算成员。

外部枚举

使用declare enum定义的枚举类型

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

编译完后也删除,常用于声明文件。

ES6中类的用法

属性和方法

class Animal {
		constructor(name){
			this.name = name;
		}
		sayHi() {
			return `my name is ${this.name}`;
		}
}

类的继承

class Cat extend Animal {
	constructor(name){
		super(name);
	}
	sayHi(){
		return `meow, ${super.sayHi()}`
	}
}

存取器

使用getter和setter可以改变属性饿赋值和读取行为

class Animal {
	constructor(name) {
		this.name = name;
	}
	get name() {
		return 'Jack';
	}
	set name(value) {
		console.log('setter: ' + value);
	}
}

静态方法

使用static修饰,可直接通过类来调用

class Animal {
	static isAnimal(a) {
		return a instanceof Animal;
	}
}
let a = new Animal('Jack');
Animal.isAnimal(a); // true
a.isAnimal(a); // TypeError:...

ES7中类的用法

1.实例属性可以直接在类里面定义
2.static可以修饰静态属性

TypeScript中类的用法

三种修饰符:public、private、protected

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值