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

    (完)

  • 相关阅读:
    ASP.NET服务器控件开发(3)事件和回传数据的处理
    ASP.NET服务器控件开发(1)封装html
    .Net Remoting(基本操作) Part.2
    javascript方法和技巧大全_javascript教程
    .Net Remoting(分离服务程序实现) Part.3
    [转]我在面试.NET/C#程序员时会提出的问题
    ASP.NET服务器控件开发(2)继承WebControl类
    一点点对WebResource.axd的配置及使用[原创]
    .Net Remoting(远程方法回调) Part.4
    ASP.NET自定义控件复杂属性声明持久性浅析
  • 原文地址:https://www.cnblogs.com/cathy1024/p/10881187.html
Copyright © 2011-2022 走看看