zoukankan      html  css  js  c++  java
  • 【2019-11-24】基础类型


    1、布尔值

    2、数字

    3、字符串 -双引号或者单引号 ,支持模板字符串`` ,可以定义多行和内嵌表达式,并且以${expression} 这种形式嵌入表达式

    4、数组

    let list: number[] = [1, 2, 3]
    let list: Array<number> = [1, 2, 3]

    5、元组

    当访问一个越界的元素时 ,会使用联合类型来代替
    let x : [string, number]
    x=["hello" , 5]
    x[3] = "string " //ok
    x[4] = 6 //ok
    x[5] = true //wrong , boolean is not belong to string | number

    6、枚举
    enum Color {Red, Green, Blue}
    let c : Color = Color.green

    7、Any

    8、Void

    声明一个void类型的变量没有什么大用,因为你只能为它赋予undefined 和null

    9、Null和Undefined

    Null和undefined是所有类型的子类型,也就是说可以把null | undefined赋值给其他类型number的变量
    如果你指定了--strictNullChecks标记,null和undefined只能赋值给void和它们自已。这能避免很多问题,如果想传入一个string或者null,你可以使用联合类型null | undefined | string

    10、Never

    表示的是那些永不存在的值的类型, 例如: never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型
    never类型可以是任意类型的子类型,也可以赋值给任何类型
    但没有类型是never的子类型,any也不行,,,只有never类型可以赋值给never

    11、Object

     

    类型断言

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

    let strLenght: number = (string as someValue).length

    当typeScript不确定一个联合类型的变量到底属于哪个类型的时候,我们只能访问此联合类型的所有类型里共用的属性或方法

    而有时候,我们确实需要在还不确定类型的时候就访问其中一个类型的属性或方法,比如:

    上例中获取someValue.length就会报错

    此时可以用类型断言,将something断言成string

    注意:类型断言不是类型转换,断言成一个联合类型中不存在的类型是不允许的

  • 相关阅读:
    从零到有模拟实现一个Set类
    node+express+mysql 实现登陆注册
    从路由原理出发,深入阅读理解react-router 4.0的源码
    linux rsyncserver文件同步
    为什么说Python是一门动态语言--Python的魅力
    python基础教程_学习笔记11:魔法方法、属性和迭代器
    list,set,map,数组间的相互转换
    TCP/IP协议族
    宿舍更换的新淋浴喷头"水温vs旋钮角度"关系的研究(曲线)
    单元測试中 Right-BICEP 和 CORRECT
  • 原文地址:https://www.cnblogs.com/QQ-lala/p/11922996.html
Copyright © 2011-2022 走看看