第一章:基础类型

typescript 采用 “类型注解” 的方式对变量或方法进行显性的类型定义

注释:typescript 中的类型 首字母均不需要大写

1、boolean类型

与js同理,包含truefalse

  let isBoolean: boolean = false;

2、number类型

和JavaScript一样,TypeScript里的所有数字都是浮点数。 这些浮点数的类型是 number。 除了支持十进制和十六进制字面量,TypeScript还支持ECMAScript 2015中引入的二进制和八进制字面量

  let decLiteral: number = 6;
  let hexLiteral: number = 0xf00d;
  let binaryLiteral: number = 0b1010;
  let octalLiteral: number = 0o744;

3、string 类型

  let name: string =  '绿库前端';

因为ts属于js的超集,完全兼容js、es6、es6语法;所以我们可以直接采用 “ 模板字符串 ” 定义多行文本和内嵌表达式

  let name: string = '翟磊';
  let team: string = '绿库前端';
  let introduction: string = ` ${name} 是 ${team} 的前端开发工程师 `;
                               ==> 翟磊是绿库前端的前端开发工程师

4、Arrary 数组类型

基础写法:类型[ ]
泛型写法:Array<类型>

  let arr_1: number[] =  [11,22,33];
  let arr_1: string[] =  ['aa','bb','cc'];

  let arr_1: Arrary<number> =  [11,22,33];
 ``

5、Tuple 元组类型

初次见到 “ 元组 ” 获取你会感到很陌生,这是啥**玩意;莫慌,其实元组类型说白了,就是数组的拓展,只不过它指定了数组的长度和每个位置元素的类型罢了。对,没错,就这么简单。是不是感觉自己一开始被唬住了,一万头曹尼玛,崩腾而过~~~~~~~

  let tuple: [string, number];
       tuple  =  ['翟磊',18];  == OK
       tuple  =  ['翟磊','我爱你'];  ==  Error  
     

6、enum 枚举、泛型、object

如果你是初级前端工程师或是刚入行web小鸟,初次接触 “ 枚举、泛型 ” 或许你会感到迷茫,此时的你应该会和当初的我一样感觉这个小东东有些抽象,不过别怕,我已经给你们准备好的单独的一个章节分别去讲解 “ 枚举 、泛型、object”,在这一章节中,我将带你一步步的去看清 “ 枚举、泛型、object ” 的嘴脸,以及各自的使用场景。so ~~~ 请您移步!!!

7、any类型

在ts中任何类型都是any类型的子类型,也就是说任何类型都可以被归为any类型(任何类型都可以赋值给any类型),所以any类型也被认为是是 “ 全局超级类型 ”,绝对的superType

我们可以访问类型为any的变量的任意 “ 属性 ” 或 “ 方法 ”

  let super:any;
       super=  [1,2,3];  == OK
       console.log(super.length)  == 3

       super=  123  ==  Error  

       super=  '翟磊我爱你'  == OK

       super= { name:'翟磊',age:18  }   == OK
       console.log(super.age)  == 18

       super = function(){}  == OK

       new super()  == OK

8、Never类型

Never类型名义上与any类型正好相反,表示那些永远不存在的 “ 值 ” 的类型,never类型是任何类型的子类型,也可以赋值给任何类型;没有类型是never的子类型,并且任何类型都不能赋值给never类型,any也不行,除了never本身

使用场景: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) {
      }
  }

9、void类型

某种程度上来说,void类型像是与any类型相反,它表示没有任何类型,一般用于没有返回值的函数

  let demo = (p:number):void=>{
       console.log(123123123);
  }
  == ok

 let demo2 = (p:number):void=>{
       return p
  }
  == Error

10、Never 和 void 区别

void通常用于没有返回值的函数,也就是我们通常所说的 “该函数什么都不返回”,严格意义上来说,这种说法是错误的,应为一个函数及时没有return ,没有显式的返回值,但是通过console.log() 我们就不难发现,其实他是有返回值的:undefined

never返回类型的函数那才是真的 永不返回 ,它也不返回undefined,因为该函数都没有正常结束,这就是我们上面所说的,该函数抛出异常了或是永远无法退出执行(死循环)

11、Null 和 Undefined

undefined和null两者各自有自己的类型分别叫做undefined和null。 和 void相似,它们的本身的类型用处不是很大,这里也就不做过多的赘述

默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给number类型的变量

   let u: undefined = undefined;
   let n: null = null;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。