【 TypeScript 】TypeScript的数据类型有哪些?

2024-03-11 6336阅读

1. 是什么

ts和js 乎一样,拥有相同的数据类型,另外在js基础上提供了更加实用的类型供开发使用

【 TypeScript 】TypeScript的数据类型有哪些? 第1张
()

在开发阶段,可以为明确的变量定义某种类型,这样ts就能在编译阶段进行类型检查,当类型不符合预期结果的时候就会出现错误提示

2. 有哪些

typescript的数据类型主要有如下

【 TypeScript 】TypeScript的数据类型有哪些? 第2张
()
  • boolean (布尔类型)
  • number(数字类型)
  • string (字符串类型)
  • array (数组类型)
  • tuple (元组类型)
  • enum (枚举类型)
  • any (任意类型)
  • null和undefined 类型
  • void 类型
  • never类型
  • object 类型

    2.1 boolean (布尔类型)

    let flag:boolean=true;
    flag="12345" //错误
    flag=false   //正确
    

    2.2 number(数字类型)

    数字类型和JS一样,ts的数值类型都是浮点数,可以支持二进制、八进制、十进制和十六进制

    let flag:number=123;
    flag="12345" //错误
    flag=456   //正确
    

    2.3 string (字符串类型)

    和JS一样,可以使用双引号和单引号表示字符串

    let str:string='12333';
    str='hello'   //正确
    

    作为超集,也可以使用模版字符串进行包裹,通过${}嵌入变量

    let name:string='superrui';
    let age:number=18;
    let info:string=` hello my name is ${ name }`
    

    2.4 array (数组类型)

    跟JS一样,通过[]进行包裹,有两种写法:

    方式一:元素类型后面接上[ ]

    let arr:string[]=['11','22','33']
    arr=['33','44','55']
    

    方式二:使用数组泛型,Array:

    let arr:Array = [1,2];
    arr=[3,4]
    

    2.5 tuple (元组类型)

    允许表示一个已知元素数量和类型的数组,各元素的类型不必相同

    let tupleArr:[Number,String,boolean];
    tupleArr=[12,'23',true] //ok
    tupleArr=[12,'23'] //no
    

    赋值类型、位置、个数需要和定义的类型、位置、个数 一致

    2.6 enum (枚举类型)

    是对JS标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字

    enum Color {red,green,yellow}
    let A:Color=Color.red
    

    2.7 any (任意类型)

    可以指定任何类型的值,在编程阶段还不清楚类型的变量制定一个 类型,不希望类型检查器对这些值进行检查而直接让他们通过编译阶段的检查,这时候可以使用any类型

    使用any类型允许被赋值为任意类型,甚至可以调用其属性、方法

    let num:any=213;
    num='str';
    num=456
    

    定义存储各种类型数据的数组时,代码如下:

    let arrList:any[]=[1,'str',false];
    arrList[1]=200
    

    2.8 null和undefined 类型

    在JS中null 是一个只有一个值的特殊 类型,表示一个控对象引用,而undefined表示一个没有设置值的变量

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

    let num:number|undefined; //数值类型或者undefined
    

    但是ts 配置了–strictNullChecks 标记。null和undefined只能赋值给void和他们各自

    2.9 void 类型

    用于标识方法返回值的类型,表示该方法没有返回值

    function hi():void{
        alert ('hi rui ')
    }
    

    2.10 never类型

    never是其他类型(包括null和undefined的子类型),可以赋值给任何类型,代表从不会出现的值

    但是没有类型是never的子类型,这意味着never的变量只能被never类型所赋值。

    never类型一般用来指定哪些总是会抛出异常、无限循环

    let a:never;
    a=123; //错误写法
    a=(()=>{ //正确写法
        throw new Error('错误')
    })
    //返回never的函数必须存在无法到达的终点
    function error(message:string):never{
        throw new Error(message)
    }
    

    2.11 object 类型

    对象类型,非原始类型,常见的形式通过{}进行包裹

    let obj:object;
    obj={name:'superrui',age:18}
    

    3. 总结

    和JS基本一致,也分成:

    • 基本数据类型
    • 引用数据类型

      在基础类型上,ts 添加了void any enum等原始类型


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]