1.什么是ts?
ts是js的超集,是静态类型语言,2012年由微软开发,不能直接运行在浏览器上,必须经过编译才能运行在浏览器上。目前在vue/react/express中得到广泛使用。
2.什么是动态类型,什么是静态类型?
动态类型,在js中写这样一段代码
let a = 123;
let a ='你好';
a先被赋值为123,此时a的类型为Number,然后a被赋值成'你好',此时a的类型是String 。可以看出a的类型是动态的,可变化的。这就是动态类型。
但是在ts中运行上面的代码会报错,因为a首先被赋值成123时,a会根据ts的类型推断,推断出a是Number类型,以后再给a赋值都必须是Number类型,否则会报错。
在ts中
let b = 123 ; 等同于 let b: number = 123
3.数组和元组
数组
数组类型注解
const arr: (number | string)[] = [1,'2',3]; //arr是一个数组,数组里面的元素只能是Number类型或String类型
const stringArr: string[] = ['a','b','c'];
const undefinedArr: undefined[] = [undefined];
对象类型注解
//type alias 类型别名
type User = {name: string; age: number}; //定义了User类型
const objectArr: User[] = [ //objectArr数组必须遵循User类型,对象中只能有两个元素,name和age,不能多不能少
{
name:'hello',
age:28
}
];
class Teacher{ //定义一个Teacher对象
name: string;
age:number;
}
const objectArr: Teacher[] = [
new Teacher(),
{
name:'hello',
age:28
}
];
元组 tuple
元组是长度和类型都固定的特殊的数组。
const teacherInfo: [string, string, number] = ['hello','hi',10];
const teacherList: [string, string, number][] = [
['hello','hi',10],
['hello','hi',10],
['hello','hi',10];
]
网友评论