基础类型

222 阅读3分钟
  1. 布尔值 boolean

    // 就是true 和 false 的判断、
    
    let isBoolean:boolean = true;
    
  2. 数字 number

    // TS的所有数字都是浮点数,类型都是number  支持 十进制。 十六进制, 二进制, 八进制字面量
    
    let a:number = 10;  // 十进制
    let b:number = 0xf00d; // 十六机制字面量
    let c:number = 0b1010; // 二进制字面量
    let d:number = 0o744; // 八进制字面量
    
  3. 字符串 string

    // 与JS相同 用 单引号 或者 双引号 表示字符串
    
    let name:string = "zhj";
    
    // 还可以使用模板字符串
    
    let age:number = 24;
    
    let sentence:string = `名称:${zhj},年龄:${age}`;
    
    
  4. 数组 [] || Array<>

    // 数组有两种创建方式  数组内部的元素必须是单一的,只能由一种类型的数据组成
    
     1. let arr1: number[] = [1, 2, 3];
        let arr2: string[] = ['a', 'b', 'c'];
    
     2. let arr3: Array<number> = [1, 2, 3];
        let arr4: Array<string> = ['a', 'b', 'c'];
    
    
  5. 元组 Tuple

    // 元组类型,允许表示一个已知元素数量和类型的数组,各元素的类型不必相同
    
    let x: [string, number] = ['a', 3];  // 位置对应的类型,必须要与元组设置的对应的类型相同
    
    
  6. 枚举 enum

    // 枚举类型可以为  一组数值  赋予友好的名字
    
    enum Color { Green, Red, Yellow };  // 默认从1 开始赋值, Green =1  Red =2  Yellow = 3
    
    // 当然也可以自己设定值
    
    enum Color { Green = 10, Red, Yellow }; // 指明数值是从10开始的 依次增加
    
    // 或者自己指定所有的值
    
    enum  Color { Red = 1, Green = 2, Blue = 4}
    
    
    let c: Color = Color.Green;
    
    
    // 我们也可以 根据值获取对应的名称
    let name: string = Color[2];   // 这样 拿到的值就是 'Green'
    
  7. Any

    // 当我们不清楚一个变量是否为某种类型的时候,我们可以为其设置为any类型, 在编译的时候,可选择的包含或者移除类型检查
    
    // 特性1  可以赋值为任何类型的值  不能赋值给never类型
    
    let noSure: any = 4;
    noSure = 'fadjfla';
    noSure = false;
    
    // 特性2 可以使用其类型上的方法
    
    let noSure: any = 4;
    noSure.infItExists();
    
    // 特性3 可以与数组结合,数组内的数据,不限制类型
    let list: any[] = [1, 'a', true];
    
    
    
    
  8. Void

    // void表示没有任何类型,当一个函数没有任何返回值的时候,其返回值类型就是void
    
    function use(): void {
        console.log(213)
    }
    
    // 或者给变量赋值为undefined 或者 null
    
    let unsable: void = undefined;
    
  9. Null 和 Undefined

    //null  和  undefined 都是各自的类型,与void 类似,作用不大
    
    let u: undefined = undefined;
    let n: null = null;
    
    //在ts的配置文件中,如果没有开启 strictNullChecks: false   那么   null 和 undefined 可以复制给任何变量,都是允许的
    
    let num: number = null;   let str: string = undefined;
    
    
    //但是如果配置而文件开启了 strictNullChecks: true  那么 只能赋值给自己或者void
    
  10. Never

    // never 类型是任何类型的子类型,可以赋值给任何类型  或者给那些总会抛出异常或者根本就不会有返回值的函数表达式
    
    function error(message: string): never {
        throw new Error(message);
    }
    
  11. Object (不太懂)

    // object 表示非原始类型,也就是除了number, string, boolean, symbol, null, 和 undefined 之外的类型
    
    declare function create(o: object | null): void;
    
    create({ prop: 0 }); // OK
    create(null); // OK
    
    create(42); // Error
    create("string"); // Error
    create(false); // Error
    create(undefined); // Error
    
  12. 类型断言

    // 当你比TS 更明确地知道当前的这个值的类型 就可以使用断言,确定在这个值得类型,跳过编译阶段的检查
    
    let someVal: any = "zhjk fsdfsdf ";
    let strLength: number = (<string>someVal).length;  // 断言是一个字符串类型,然后使用其.length的属性
    let strLength1: number = (someVal as string ).length  // 这个方法也是可以的