Bootstrap

typescript初学(1)类型断言、class

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(){}
}
;