typescript数据类型

 
在学习ts数据类型之前,大家先要知道一个概念,什么是强类型语言,什么是弱类型语言。
1.强类型语言:使之强制数据类型定义的语言。没有强制类型转化前,不允许两种不同类型的变量相互操作。强类型定义语言是类型安全的语言,如Java、C# 和 Python,比如Java中“int i = 0.0;”是无法通过编译的;
2.弱类型语言:数据类型可以被忽略的语言。与强类型语言相反, 一个变量可以赋不同数据类型的值,允许将一块内存看做多种类型,比如直接将整型变量与字符变量相加。C/C++、PHP都是弱类型语言,比如C++中“int i = 0.0;”是可以编译运行的;
 
typescript(以下简称ts) ts作为js的超集,包含js的所有数据类型,在js的基础上又增加了 void any never 元祖 枚举 等,js属于弱类型语言,同为弱类型语言的还有大家熟悉的php python vb等。ts属于强类型语言,同为强类型语言的还有java c c++ ,把ts称为强类型语言这些值在定义阶段就要指定数据类型,这也是ts这门语言最大区别与js的地方。
 
下面是ts的数据类型的定义方法:


👉原始类型:
let    bool : boolean = true

let    num : number = 123

let    str : string = “abc”

👉数组:
let    arr1 : number[] = [1,2,3]
let    arr2 : Array<number> = [1,2,3]
let    arr3 :Array<number | string> = [1,2,”3"]

👉元组:(特殊的数组,限定了数组的类型和个数)
let    tuple : [number,string] = [0,’1’]

👉函数:
let    add = (x:number , y:number) => x+y
  
👉对象:
let    obj : {x:number, y:number} = {x:1,y:2}

👉Symbol:
let    s1 : symbol = Symbol();
let    s2 = Symbol();
s1===s2 =>false

👉undefined,null
let    un : undefined = undefined
let    nu : null = null
备注:默认其他类型不可以设置为undefined和null,若想设置可以改tsconfig.json中的strictNullChecks为false
定义的时候要加上 let    num : number | undefined | null = 123

👉void:
没有返回值的类型
let    noReturn = ()=>{}

👉any:
如果定义的时候没有限制类型就是any ,变为动态类型
也可以 let    a :any = 1

👉never:
永远不会有返回值的类型
let    error = ()=>{    //抛出错误
    Throw new Error(“err")
}
Let endless = ()=>{    //死循环
    While(true){}
}

👉枚举:(一组有名字的常量集合)
数字枚举:
enum    Role{
    Reporter ,
    Developer ,
    Owner
}
字符串枚举
enum    Message{
    Success = “成功”,
    Fail = “失败"
}
枚举成员
enum Char {
             //常量枚举
    a,
    b=char.a,
    c=1+3,
             //计算枚举
    d=Math.random(),
    e=“123”.length
}
常量枚举 
const    enum Month {
    Jan,
    Feb,
    Mar
}

 

posted @ 2020-05-30 09:52  熊猫程序员  阅读(217)  评论(0)    收藏  举报