美文网首页
TypeScript 基础数据类型

TypeScript 基础数据类型

作者: 张思学 | 来源:发表于2020-06-10 18:04 被阅读0次

    TS是JS的超集,JS是一门动态弱类型语言。与之对应的自然有静态类型语言和强类型语言。
    在学习一门语言之前是值得花时间去区分类型之间的区别。

    强类型语言

    在强类型语言中,当一个对象从调用函数传递到被调用函数时,其类型必须与被调用函数中声明的类型兼容。

    弱类型语言

    变量可以被赋予不同的数据类型。

    静态类型语言

    静态类型语言对类型极度严格,所以代码可读性好,能自文档化,编译时就能立即发现错误并提示,所以运行的时候性能比较好。

    动态类型语言

    动态类型语言对类型要求极度宽松,从而也会出现代码可读性较差,也有可能出现一些隐藏的Bug
    在JS中,数据类型是存在隐式转换的。以下面的简单代码为例

    let name = '小明同学';
    name = true
    console.log(name) // true
    

    TS 的基础数据类型介绍

    Number(数值型)

    可以是整型、浮点型、还有各种进制型等等

    String(字符串)

    可以用单引号、双引号、反引号括着

    boolean(布尔型)

    只能有 true 和 false

    array(数组类型)

    [1, 2, 3, 4, 5]

    tuple(元组类型)

    和数组类似,但是元组中的数据类型顺序、长度必须和规定的类型顺序、长度对应起来。

    enum(枚举类型)

    一个枚举可以包含零个或多个枚举成员,枚举成员具有一个数字值,它可以是常数或计算得出的值,如果没有初始化就会被当作常数,这是第一项为0,其余为前一项加一。

    void (void类型)

    ts中void表示没有任何类型,一般用于定义方法的时候方法没有返回值

    never(never类型)

    是其他类型(包括 null 和undefined )的子类型,代表从来不会出现的值,这意味着never的变量只能被never类型赋值,比如 var a : undefined ; a就只能被赋值undefined

    any(任意类型)

    任意类型不建议使用,就和js一样了

    Ts标准写法

    在变量名后,会有一个类型注解。这个类型注解相当于强类型语言中的类型声明,能起到一定的约束作用。

    let num: number = 20; // 数值型
    
    let str: string = 'hello ts'; // 字符串
    
    let t: boolean = true;  // 布尔型
    
    let array: number[] = [1, 2, 3, 4, 5, 6] // 数组类型
    let array:Array<string> = ['a', 'b', 'c'] // 数组类型
    let array: (string | number)[1,2,'0']; // 数组类型
    
    let tuple: [string, number, boolean]; // 元组类型
    tuple = ['1', 2, true];
    
    // 枚举类型
    enum CarStatus{
        ON_lINE,
        OUT_LINE = 2,
        WARNING
    }
    console.log(CarStatus)
    
    // 不能有返回值 return
    const playFunc = (srt: string): void => {
        console.log(srt);
    }
    
    let anything: any; // 任意类型
    

    相关文章

      网友评论

          本文标题:TypeScript 基础数据类型

          本文链接:https://www.haomeiwen.com/subject/mjsptktx.html