TS学习——基础类型

292 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天,点击查看活动详情

前言

这两年TS越来越火,各大UI、框架都兼容了TS,说不定将来某一天浏览器都能支持TS。TS方便了代码的维护,极大地提升了代码的可读性。如果还没学习TS的话,就得赶紧学习。TS对JS而言,最主要的区别就是增加了类型标注,今天我们就来看一下,TS的基础类型。

基础类型

  • 数字。变量名后面加上number表示数字。
   const num: number = 2;
  • 布尔。变量名后面加上boolean表示布尔。
   const flag: boolean = false;
  • 字符串。变量名后面加上string表示字符串。
   const str: string = '123';
  • null。后面加null表示null,同理加上undefined表示undefined。
   const a: null = null;
   const b: undefined = undefined;

到此感觉TS就是把JS的基本数据类型描述了一下,接下来就有所不同啦。

  • 数组。数组可以用数据类型+[ ],如number[ ];还可以用Array<number>,这是泛型的写法。我们其实是对数组的元素做了类型限制,当数组为number[],元素如果为sting会报错。

image.png

  • 元组Tuple。由多种类型的组成的数组,[类型1,类型2,...]。数组里面的每个元素要跟元组的每个类型对应。
    const arr: [number,string] = [1, '2'];
  • object。表示除了原始类型的所有类型。也就是不能表示基本数据类型。
    const obj: object = {
    age: 25
     };
  • enum。表示枚举类型。一般用来将变量跟数字对应起来。默认是从0开始,我们可以将第一位设置起始值,后面会跟着起始值编号。
enum fruit{
  apple,
  banana,
  cherry
}
enum animal{
  pig = 3,
  bird
}
console.log(fruit.apple)//0
console.log(animal.bird)//4
  • void。表示没有任何类型。如果一个函数值没有返回值时,会返回void。对应void只能赋值undefined。
    const c :void = undefined
  • nerver。表示不存在的类型。一般表示函数返回值,比如抛出异常,箭头函数等。
    function error(): never {
    throw new Error('发生错误了');
    }
  • any。跟void相反,它表示任何类型。大家可能听说过,TS用any跟JS没区别,如果大部分都用了any还不如不用。刚开始确实不用any感觉写不出来,但是我们还是要慢慢克服,少用any。any越用越少表示我们TS也越来越精湛。 以上就是TS的基础类型,那么还有一个知识点就是类型断言,上面我们数组的表示都用到了。类型断言相当于把变量当成了断言的类型,告诉TS这个变量就是这种类型,不需要再检查了。类型断言有两种方式:
  • as写法。变量名+as+类型。
  • <>写法。<类型>+变量名
    const str:any = '123'
    const str1 = str as string //str1就是string类型,不断言会当成any
    const str2 = <string>str //str2也是string类型

总结

以上就是ts的基础类型,刚开始不要害怕用any,当然用了之后要想办法把any变成具体的类型。TS也是一门积累的学问。