七,枚举
数字枚举:
enum num{
up=1, //初始化为1 不写就是从0开始
down,
left,
right
}
//up初始化为1,其余成员会从1开始增长,down为2,left 3,right 4
num[2] //down
字符串枚举:
enum str{
up='up',
left='left'
}
异构枚举:
枚举可混合字符串和数字成员,一般不这么做
enum allenum{
no=0.
yes='yes'
}
计算和常量成员:
每个枚举成员都带有一个值,它可以是常量或者是计算出来的
枚举第一个成员没有初始化器,赋0
enum E{ X }
不带有初始化器它之前的枚举成员是个数字常量,当前枚举成员值为它上一个枚举成员的值+1
enum E1{ X , Y , Z}
enum E2{ A=1, B , C } //b 2 c3
常数项和计算所得项:
enum Color { Red, Pink, Blue = 'blue'.length } //ok
'blue'.length 就是一个计算所得项
enum Color { Red =' red'.length , Pink} //error 后面有未手动赋值的项 会报错
常数枚举:
const enum Dir{
Up,
Down,
Left,
Right
}
let dir = [Dir.Up,dir.Down,Dir.Left,Dir.Right] //0 1 2 3
外部枚举:
declare const enum Dir{
Up,
Down
}
八,类与接口
// implement, 多个接口逗号分隔
interface Alarm{
alert():void
}
class Door{}
interface Light(){
on():void
}
class SecuityDoor extends Door implement Alarm{
alert(){
console.log('alert1')
}
}
class Car implement Alarm{
console.log('car alert')
}
//多个接口逗号分隔
class Car implement Alarm,Light{
alert(){}
on(){}
}
接口继承接口:
interface A{
alert():void
}
interface B extends A{
on():void
}
接口继承类:
class Point{
x:number;
y:number;
constructor(x:number,y:number){
this.x= x;
this.y =y
}
}
interface Point2 extends Point {
z:number
}
let point1:Point2 = {x:1,y:2,z:3}