zoukankan      html  css  js  c++  java
  • 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) 关键字都可以

     

  • 相关阅读:
    android Textview动态设置大小
    小米1plus MIUI RadioButton的问题
    快读
    高精集合
    清北学堂part2
    清北学堂part1
    OTZ%%%子谦。大佬
    筛质数大优化
    回文日期
    高精度加法
  • 原文地址:https://www.cnblogs.com/beyonds/p/13554075.html
Copyright © 2011-2022 走看看