美文网首页
TS1 基本语法

TS1 基本语法

作者: my木子 | 来源:发表于2021-07-20 11:55 被阅读0次

    ts 指令

    // 编译该目录下的全部 ts 文件
    tsc
    // 编译该目录下的 deom.ts 文件
    tsc demo.ts 
    // 监听 deom.ts 文件,并自动编译该文件
    tsc demo.ts -w
    

    基本用法

    // a 必须是数值类型
    let a: number = 1;
    
    // b 必须是字符串类型
    let b: string = '1';
    
    // 联合类型,c 可同时支持数值或字符串类型
    let c: number | string = 1;
    c = '99';
    
    // d 必须是布尔类型
    let d: boolean = true;
    
    
    // 字面量,类似常量,e 的值为 10,值不能修改
    let e: 10;
    
    // 不做任何类型限制,如果不写 any,程序默认设置为 any,未知类型时不推荐使用
    let f: any = 10;
    f = '99';
    f = true;
    
    // unknown 未知类型,赋值给其他变量时会报错,未知类型时推荐使用
    let g: unknown;
    g = 2;
    g = '99';
    let g1: number = 1;
    // 直接赋值报错,不能将类型“unknown”分配给类型“number”
    // g1 =  g;
    // 判断类型,满足条件再赋值
    if(typeof g === 'number'){
        g1 = g;
    };
    // 类型断言,可以用来告诉解析器变量的实际类型,以下两种使用方法
    g1 = g as number;
    g1 = <number>g;
    
    // 空值,函数没有返回值,可返回 null 、undefined
    function sum (): void { };
    
    // 没有任何返回值,包括 null 、undefined,应用场景(代码抛出错误的时候)
    function sum (): never { 
        throw new Error('报错了');
    };
    

    object

    // 指定对象包含属性,不能添加 name、age 以外的任何属性
    let a: {name: string, age: number};
    a = {name: '张三', age: 18};
    
    // age? 表示该属性是非必须
    let b: {name: string, age?: number};
    b = {name: '张三'};
    
    // [propName: string]: any 表示支持 propName 属性名(age、sex)为字符串的任意类型的属性(18、'男')
    let c: {name: string, [propName: string]: any};
    c = {name: '张三', age: 18, sex: '男'};
    

    函数

    // 参数必须是数值,a 和 b 的默认值为 2,返回值必须是字符串
    function sum (a: number = 2, b: number = 2): string {
        return String(a + b);
    };
    

    数组

    let a: string[] = ['1', '2', '3'];
    let b: Array<string | number> = ['1', 2, '3'];
    

    元组 tuple(固定长度的数组)

    // 数组中只能存两个指定类型的值
    let a: [string, number] = ['1', 2];
    

    枚举 enum

    enum Gender {
        Male = 0,
        Female = 1
    };
    
    let a: {name: string, sex: Gender};
    a = {name: '张三', sex: Gender.Male}; 
    

    |&

    // 满足其中一种类型
    let a: string | number = 1;
    // 同时满足条件
    let b: {name: string} & {age: number} = {name: '张三', age: 18};
    

    类型别名

    // 限制必须是 1-5 中的值
    type myNumber = 1 | 2 | 3 | 4 | 5;
    let a: myNumber = 5;
    

    相关文章

      网友评论

          本文标题:TS1 基本语法

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