React_Native 再学习5--TypeScript学习2_进阶语法
元组
let xcatliu: [string, number];
xcatliu[0] = 'Xcat Liu';
xcatliu[1] = 25;
枚举
普通定义
enum Days {Sun, Mon, Tue, Wed, Thu, Fri,Sat};
console.log(Days["Sun"] === 0); //true
console.log(Days[0] === "Sun"); //true
手动赋值:
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
枚举会在赋值之后的数据进行累加。
类的使用
普通的类定义和使用:
class Animal {
privatename;
publicconstructor(name) {
this.name = name;
}
}
class Cat extends Animal {
constructor(name){
super(name);
console.log(this.name);
}
}
抽象类
abstract class Animal {
publicname;
publicconstructor(name) {
this.name = name;
}
publicabstract sayHi();
}
class Cat extends Animal {
publiceat() {
console.log(`${this.name} is eating.`);
}
}
接口的使用:
接口间继承;
interface Alarm {
alert();
}
interface LightableAlarm extends Alarm {
lightOn();
lightOff();
}
对象接口继承类
class Point {
x: number;
y: number;
}
interface Point3d extends Point {
z: number;
}
迭代器和生成器
Array,Map,Set,String,Int32Array,Uint32Array等都已经实现了各自的Symbol.iterator
for in 与for of
for..of和for..in均可迭代一个列表;但是用于迭代的值却不同,for..in迭代的是对象的 键 的列表,而for..of则迭代对象的键对应的值。
let list = [4, 5, 6];
for (let i in list)
{ console.log(i); // "0","1", "2", }
for (let i of list)
{ console.log(i); // "4","5", "6" }