zoukankan      html  css  js  c++  java
  • 学习笔记:TypeScript入门——基础类型

    前言:

    TypeScript官网断断续续看过几遍,不知道项目中如何使用,有机会还是要实践一下。现在再把文档上不懂的知识点理一遍。

    基础类型

    1.什么是元组Tuple?

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

    //声明一个元组类型
    let x: [string, number];
    
    //初始化正确
    x = ['hello', 10]; //OK
    
    //初始化错误
    x = [10, 'hello']; //Error
    
    //初始化正确
    x = ['world', 11]; //OK

    2.什么是枚举?

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

    enum Color {Red = 1, Green = 2, Blue = 4}
    let c: Color = Color.Green;
    
    let colorName: string = Color[2];

    3.Any类型

    不希望类型检查其对这些值进行检查而是直接让它们通过编译阶段的检查。

    let notSure: any = 4;
    notSure = "maybe a string instead";
    notSure = false;

    和Object类型的变量的不同:

    notSure.ifItExists(); //okay
    notSure.toFixed(); //okay
    
    let prettySure: Object = 4;
    prettySure.toFixed(); //Error

    当你只知道数组中一部分数据的类型时:

    let list: any[] = [1, true, "free"];
    list[1] = 100; //okay

    4.Void类型

    与any类型相反,它表示没有任何类型。

    function warnUser(): void {
        console.log("这是我的提示信息!");
    }

    只能赋予它undefined和null

    let unusable: void = undefined;

    5.NUll和Undefined

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

    let u: undefined = undefined;
    let n: null = null;

    指定--strictNullChecks标记,null和undefined只能赋值给void和它们各自。

    6.Never

    never类型表示永不存在的值的类型。

    // 返回never的函数必须存在无法达到的终点
    function error(message: string): never {
        throw new Error(message);
    }
    
    // 推断的返回值类型为never
    function fail() {
        return error("Something failed");
    }
    
    // 返回never的函数必须存在无法达到的终点
    function infiniteLoop(): never {
        while (true) {
        }
    }

    7.Object表示非原始类型

    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

    8.类型断言

    “相信我,我知道自己在干什么”,类型断言好比其它语言里的类型转换。

    类型断言有两种形式

    (1)尖括号语法

    let someValue: any = "this is a string";
    let strLength: number = (<string>someValue).length;

    (2)as语法

    let someValue: any = "this is a string";
    let strLength: number = (someValue as string).length;

    9.尽可能地使用let来代替var

    (完)

  • 相关阅读:
    使用kbmmw 生成REST 服务OpenAPI函数原型
    kbmmw 5.08 正式发布
    在datasnap 中使用unidac 访问数据(客户端)
    使用双引擎,让kbmmw 的客户端访问更方便
    使用kbmMWConfiguration 让 kbmmw smartservice 更聪明
    CE lua脚本
    error LNK2019: 无法解析的外部符号 __vsnwprintf,该符号在函数 "long __stdcall StringVPrintfWorkerW
    安装 directx sdk 出现 S1023 解决
    dx11的一些数据结构
    git 比较 change to be committed
  • 原文地址:https://www.cnblogs.com/cathy1024/p/10881187.html
Copyright © 2011-2022 走看看