美文网首页
typescript 中的数据类型

typescript 中的数据类型

作者: 孤星伴明月 | 来源:发表于2018-11-19 23:32 被阅读0次

    在ts中,必须设置变量的数据格式。

    类型推断

    你在初始化变量时并没有明确地指定变量类型的话,则ts会自动根据变量的初值给这个变量设置一个类型。而在随后的使用中,这个变量也就有类型了。

    如下,是一个错误的示范:

    let a = "abc"
    a = 1
    

    a的类型被推断出是字符串型,则不可以当做数值使用。

    基本数据类型

    boolean,number,string,数组

    let isDone : boolean = false;
    let num:number = 10;
    let str:string = "good";
    let list:number[] = [1,2,3];
    let arr:Array<number> = [1,2,3];
    
    

    自定义的组合类型的数组

    let objArr:[string,number,boolean] = ['a',10,false]
    

    自使用 type 定义数据类型名

    type Name = string;
    type NameResolver = (b:number) => string;
    type NameOrResolver = Name | NameResolver;
    
    let a: Name = "abc"
    a = 1 // 错误 
    
    // 两个错误:参数的类型不对,返回值类型也不对
    let b: NameOrResolver = (b:string ) => {
        return 1
    }
    

    枚举类型

    enum TYPE { STUDENT, TEACHER };
    let t: TYPE = TYPE.STUDENT
    console.info(t) // 1
    

    如上的ts代码编译成js后是:

    var TYPE;
    (function (TYPE) {
       TYPE[TYPE["STUDENT"] = 0] = "STUDENT";
       TYPE[TYPE["TEACHER"] = 1] = "TEACHER";
    })(TYPE || (TYPE = {}));
    ;
    var t = TYPE.STUDENT;
    console.info(t); // 1
    

    自定义数据类型

    你可以用接口来自己定义某个特殊的数据结构:

    interface STUDENT{
        name: string,
        age: number,
        score:[number,number,number]
    }
    
    function f(stu:STUDENT) {
        console.info(stu.age,stu.name,stu.score.join("-"))
    }
    let s:STUDENT = {name:100}; // error:100不是字符串
    f({age:20,name:"jake",score:[100,'90',98]}) // error: '90' 不是数值
    

    对应生成的js是:

    function f(stu) {
        console.info(stu.age, stu.name, stu.score.join("-"));
    }
    f({ age: 20, name: "jake", score: [100, 90, 98] });
    
    

    相关文章

      网友评论

          本文标题:typescript 中的数据类型

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