好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

typescript笔记-- 基础类型

一、number:数字类型

   包括十进制的整数,浮点数,八进制和16 进制的数

 1  let num:number = 1  //   指定number 
 2  let num2 = <number>1; //  使用断言写法 
 3  let num3 = 1 as number; //  使用断言写法 
 4  let num4 = 1; //  初始不指定类型赋值,ts会推导为number 
 5  
 6  let hexLiteral: number = 0xf00d;  //  八进制 
 7  let binaryLiteral: number = 0b1010; //  16 进制 

 

二、string:字符串类型

 1  let str:string = "string"

 

三、 boolean: 布尔类型

 1  let bl1: boolean  =  true 
 2  let bl2: boolean  =  false 

 

四、null  和 undefined:是所有类型的子类型

 1  let nu: null  =  null 
 2  let un:undefined = undefined

 

五、 Array[] 数组

    有两种写法;一种是类型+[], 另一种是泛型写法,Array<类型>

 1  let arr1:string[] = ["str"]; //  普通写法 
 2  let arr2:Array<number> = [1]; //   泛型写法 

 

六、元组

   其实也是数组数组,只是它表示已知元素的数量和元素的类型

 1  let tu:[string,number, boolean ] = ["str",1, false ];

 

七、enum 枚举

   枚举的如果没有赋值,默认值为0 开始

  1   //  示例1:不赋值 
  2   enum Color {Red, Green, Blue}
   3  let colorName: string = Color[1]; //  利用下标获取,没有指定赋值下标从0开始 
  4  console.log(colorName);  //  Green 
  5  
  6   //  示例2:赋值 
  7  enum TipType { success=0,   fail=1, error=2 }
   8  let resS:TipType = TipType.success; //  0, 
  9  let resF:TipType = TipType.fail; //1  , 
 10  let resE:TipType = TipType.error; //2   , 

 

八、any 任意类型

  当一个变量被声明为any类型,ts 不会再做类型检测,就和javascript 一样,可以随便改变数据类型

 1  let anyType :any = "string"  ;
  2  anyType = 1;

 

九. void :空类型

(1.)与any 类型相反,一般在函数没有返回值的时候用到

(2.)声明一个 void 类型的变量,只能赋值undefined 和null ,所以没多大意义

 1   //   在函数没有返回值用 
 2   function  fn(): void  {}
  3  
 4   //  声明使用 
 5  let val : void  =  null ;

 

十、never: 不存在值的类型

(1.)  never 是任何类型的字类型,可以赋值给任何类型,但是没有类型可以赋值给它,除了自己 never

(2.)  一般 用与那些抛出异常,没有返回值的表达式和箭头函数的返回值类型

 1   //   抛出异常的返回值为never 类型 
 2   function   fn1():never{
  3       throw   new  Error("message" );
  4  }

 

十一、unkown:不知道的类型

(1.) TypeScript 3.0 版本引入的,认为是 top type , 是任何类型的子类型subType 

(2.) 与any 的区别在于,any 既是topType ,也是buttomType,所以any 不会对数据做类型检查,而unkown在使用的时候会检测数据类型 

(3.) 当一个数据为unkown 类型,你又要使用它的使用,你使用断言或者做类型判断才能通过ts 的类型检查,否则会编译错误

 1  let data:unknown = 1; //  变量赋值给1 ,但是类型还是unknown 
 2  
 3  data = [2,3,4]; //   这里又重新赋值给数组,ts 不会报错 
 4   //   let rs1 = data[0];// 这里调用的时候却是报错了,虽然值是数组,但是类型却是unkown,所以调用的时候就会报错 
 5  let rs2 = (<Array<number>>data)[0]; //  //需要使用断言来重新声明类型 
 6  
 7  data ={a:1}; //   这里又重新赋值给对象,ts 不会报错 
 8   //   data.a="string" // 这里获取a报错 
 9  (<{a:string}>data).a = "12"; //  使用断言(<>尖括号)或者(as) 关键字都可以 

 

 

 

查看更多关于typescript笔记-- 基础类型的详细内容...

  阅读:58次