Ts基本数据类型
TS的基本数据类型
string
let str : string
str = 1 //报错 会提示num是字符串 不是数字
str = 'test' //正确
//拼接字符串
let str2 : string
str2 = `this is a ${str}`
console.log(str2) //this is a test
number
// ts 与 js 一样所有数字类型 都是浮点型
let num : number
num = 'test' //报错
num = 1 //正确
enum 枚举
enum school{
teacher,
student,
employee
}
//默认情况下 techer = 0 ,student = 1,employee = 2
enum school{
teacher,
student = 2,
employee
}
//这种情况 student = 2 , employee = 3 ,teacher = 0
enum school{
teacher = 2,
student,
employee
}
//这种情况 student = 3 , employee = 4 ,teacher = 2
never
never 是任何类的继承 但是任何 不能赋值给 never
boolean
let isTure : boolean
isTrue = true
isTrue = 'test' //报错
isTrue = 123 //报错
元组
let test : [string,number]
test = ['test',123] //只有第一个是字符串 第二个是数字才能通过
数组
let test : number[]
test = ['sadas',1] //报错 因为声明了是number数组
any
//就跟js var 声明一样 用这个起不到ts的优势
类型断言
//让编译器相信 coder写的一定是 对的
//比如 number不能有 length这个属性 但是我又想知道是几位数
let num : number = 100
let num111 : number = 123
console.log((num111 as string).length) //报错 联合声明才能用 最好在函数里用
console.log((<string>num).length) //报错 不能强制转换类型
console.log(num as string).length) //报错 不能强制转换类型
//正确用法
//断言有两种写法
1. xx as xx
2. <string>num
function getLength2(something: string | number) :number {
if ((something as string).length) {
return (something as string).length
}else{
return something.toString().length;
}
}
void
某种程度上来说,void类型像是与any类型相反,它表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是 void:
function warnUser(): void {
alert("This is my warning message");
}
注意:声明一个void类型的变量没有什么大用,因为你只能为它赋予undefined和null
let unusable: void = undefined;
null 和 undefined
TypeScript里,undefined和null两者各自有自己的类型分别叫做undefined和null。 和 void相似,它们的本身的类型用处不是很大:// Not much else we can assign to these variables!
let u: undefined = undefined;
let n: null = null;
never
never类型表示的是那些永不存在的值的类型。 例如, never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型; 变量也可能是 never类型,当它们被永不为真的类型保护所约束时。never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 即使 any也不可以赋值给never。
下面是一些返回never类型的函数:
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}
// 推断的返回值类型为never
function fail() {
return error("Something failed");
}
// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
while (true) {
}