02-TypeScript学习之类型约束

如何进行类型约束

  • 仅需要在 变量、函数的参数、函数的返回值后加上:类型
    let name: string;
    function sum(a: number, b: number): number{
        return a + b;
    }
    let num: number = sun(3,4);

源代码和编译结果的差异

  • 编译结果中没有类型约束信息

基本类型

  • number : 数字

  • string : 字符串

  • boolean : 布尔值

  • object: 对象

  • 数组

    let nums: number[] = [1, 1, 2];
    let nums: Array<number> = [1, 2, 3];
  • null 和 undefined

null 和 undefined是所有其他类型的子类型 他们可以赋值给其他类型

strictNullChecks: true配置文件

严格的空类型检查 null和undefined不能赋值给其他类型 只能赋值给自身

其他类型

联合类型

多种类型任选其一

    let name: string | undefined = undefined;

配合类型保护进行判断

类型保护:

当对某个变量进行类型判断以后,在判断的语句块中便可以确定它的类型 可以通过typeof触发基本类型的类型保护

void类型

通常用于约束函数的返回类型 表示函数没有任何返回值

never类型

通常用于约束函数的返回类型 表示函数永远不可能结束

字面量类型

使用一个值进行约束 只能用这个值进行赋值

    let gender: "男" | "女"; /* 字面量类型 + 联合类型*/
    gender = "男";
    gender = "女";

    let arr:[]; /* 字面量类型约束 arr只能是一个空数组*/

    let user:{
        name:string
        age :number
    }

元祖类型(Tuple)

一个固定长度的数组 且数组中每一项的类型确定

    let tuple: [number, string];
    tuple = ['123', 111];

any类型

可以绕过类型检查 因此 any类型的数据可以赋值给任意类型

类型别名

对已知的一些类型定义名称

    type 类型名 = ...
    type User = {
        name:string
        age:number
        gender:"男" | "女"
    }
    let user: User;

函数的相关约束

  • 函数重载:在函数实现之前,对函数调用的多种情况进行声明
    function combine(a: string, b: string): string{

    }
    function combine(a: number, b: number): number{

    }
    function combine(a: string | number, b: string | number): string | number{

    }
  • 可选参数 可以在某些参数名后加上问号 代表该参数可以不用传递。
  • 可选参数必须在参数列表的末尾
    function sum(a: number, b: number, c?:number): number{
        if(c){
            // 触发类型保护
            return a + b + c;
        }else {
            return a + b;
        }
    }
    sum(1, 2);
    sum(1, 2, 3);
  • 默认参数 可以给参数设置一个默认值 不能和可选参数同时使用
    function sum(a: number, b: number, c:number = 4): number{
    }   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值