TypeScript - 【0】

2020-02-04  本文已影响0人  zzyo96
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];
]
上一篇 下一篇

猜你喜欢

热点阅读