类型推断
typescript中,在定义变量时,并非一定要声明类型,如果没有明确的指定这个变量的类型,将会依据赋值时值的类型推断出一个类型,例如
let str = 'jsthin'
当我们鼠标放在其上是,可以看到str这个变量是string类型的,这就是类型推断
但是,这种推断在以下这种情况是不行的,会被认为是any类型
let str // str类型为any
str = 'jsthin'
由此看来,类型推断也是有条件的,就是定义这个变量时需要赋值
联合类型
联合类型(Union Types)可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值
function getString(str: string|number): string {
return str.toString()
}
getString(123)
getString('123')
类型断言
断言,就是将一个联合类型指定为其中一个类型
function getString(str: string|number):number {
if((<string>str).length) {
// str断言为string类型
return (str as string).length
} else {
return str.toString().length
}
}