1.类型推论 联合类型和类型断言
let str: string
~~str = 12334~~ // 提示出错 ---类型推论
str = 'str'
// union types
let numberOrString: string | number // 只能使用string和number的共有方法
// 类型断言
function getLength(input: string | number):number {
const str = input as string // as告诉编译器是string类型
if(str.length){
return str.length
} else {
const number= input as number
return number.toString().length
}
}
//type guard 守护
function getLength2(input: string | number):number {
if(typeof input === 'string'){
return input.length
} else {
return input.toString().length
}
}
2.class 类
类(class):定义一切事物的抽象特点
对象(Object):类的实例
面向对象(OOP)三大特性:封装、继承、多态
Public: 共有
Private: 私有
Protected: 属性或方法受保护,子类可使用
readonly: 只读
interface Radio{
switchRadio(trigger: boolean):void;
}
interface Battery{
checkBatteryStatus():void;
}
interface RadioWithBattery extends Radio{
checkBatteryStatus():void;
}
class Car implements Radio{
switchRadio(trigger:boolean){}
}
class Phone implements Radio, Battery{
switchRadio(trigger:boolean){},
checkBatteryStatus(){}
}
class Phone implements RadioWithBattery {
switchRadio(trigger:boolean){},
checkBatteryStatus(){}
}