• 2022/04/02 TypeScript_Study_Day2


    # 2022/04/02 TypeScript_Day2

    ### TypeScript基础类型

    - 任意类型:`any` --->声明为`any`的变量可以赋予任意类型的值
    - 数字类型:`number` --->双精度64位浮点值,可以表示整数或者分数

    **示例:**

    `
    let binaryLiteral: number = 0b1010; // 二进制
    let octalLiteral: number = 0o744; // 八进制
    let decLiteral: number = 6; // 十进制
    let hexLiteral: number = 0xf00d; // 十六进制
    `
    - 字符串类似:`string` --->使用单引号或者双引号表示字符串类型,使用反引号(`)来定义多行文本和内嵌表达式 --->类似fmt,Println或者fmt.Printf一样

    **示例:**

    `
    let name: string = "Runoob";
    let years: number = 5;
    let words: string = `您好,今年是 ${ name } 发布 ${ years + 1} 周年`;
    `
    - 布尔类型: --->boolean
    - 数组类型: --->声明方式和`java`类似

    **示例:**

    `
    let arr: number[] = [1,2];
    /*
    声明一个数值类型的数组
    */

    // 使用泛型
    let arr: Array<number> = [1,2];
    `
    - 元组类型: --->注意这里的元组不是普通的简直对也不是普通的数组类型,它类似于数组但是每一个索引的value类型不必须要相同

    **示例:**

    `
    /*
    Base type practice
    */
    let tuple: [number, string]

    tuple = [0, "HelloWorld"]

    console.log(tuple[0])
    // 这样就定义了一个元组,里面包含要有两个元素,一个是string类型,一个钥匙number类型
    `

    **注意:**
    访问元组的元素方式是按照数组索引的方式进行访问的,并不是按照`map`的方式进行键值对的形式访问
    - 枚举类型(enum): --->枚举类型用于定义数值集合

    **示例:**

    `
    // When enum once declared, it can be used as a variable type
    enum Color {Red, Bule, Green, Black}

    // Access elements in an enumerated type
    let c: Color = Color.Black

    console.log(c)
    `

    **注意:**

    这里被打印出来的`c`是枚举的值的位置,并不是值本身--->打印出`3`而不是`Black`
    - void: --->方法,无返回值
    - null: --->空对象
    - undefined: --->初始化变量为一个未定义的值
    - never: --->never 是其它类型(包括`null`和`undefined`)的子类型,代表从不会出现的值.

    **注意:**
    `TypeScript`和`JavaScript`没有整数类型.

    #### Any类型

    **理解上看`Any`类型会和元组有一些冲突:**

    **示例代码:**

    `
    // Comparing two types
    let moreTypeNo2: any[] = [1, false, "HelloWorld"]
    let moreTypeNo3: [number, boolean, string] = [1, false, "HelloWorld"]

    console.log(moreTypeNo2)
    console.log(moreTypeNo3)
    `

    **这两个变量的打印结果一致,里面的值都可以通过索引的方式进行访问**

    **那么`Any`的应用场景是什么?**

    `Any`方便改写现有的代码:

    `
    let x: any = 4;
    x.ifItExists(); // 正确,ifItExists方法在运行时可能存在,但这里并不会检查
    x.toFixed(); // 正确
    `

    #### Null和Undefined

    `js`中`null`表示空对象引用,用`typeof`检测`null`返回的是`object`

    `undefined`是一个没有设置值的变量,`typeof`一个没有值的变量会返回`undefined`

    **特点:**

    `TypeScript`中启用严格的空校验(--`strictNullChecks`)特性,使得`null`和`undefined`只能被赋值给`void`或本身对应的类型

    **示例代码:**

    `
    let x: number|null|undefined

    x = null
    x = undefined
    `

    #### never类型

    表示从不会出现的值,在函数中表现为抛出异常或无法执行到终止点

    `
    let y: never
    let z: number

    y = (() => {throw new Error("exception")})()

    // Return never
    function error(message: string): never {
    throw new Error(message)
    }

    // Can not be stop
    function loop(): never {
    for(;;){}
    }

    // Call functions
    error("Error")

    loop()
    `

  • 相关阅读:
    安装Docker-Compose
    Docker微容器Alpine Linux
    Linux 常用命令
    如何定制博客园的个人空间
    Elasticsearch入门之从零开始安装ik分词器
    Elasticsearch入门实践
    写在2017年的总结
    开源ETL工具之Kettle介绍
    常用Java数据库连接池
    细说shiro之七:缓存
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/16573268.html
Copyright © 2020-2023  润新知