TypeScript类型断言、联合类型、交叉类型

类型断言 

类型断言允许开发者手动指定变量的类型。在 TypeScript 中,有两种形式的类型断言:尖括号语法和as语法。

当我们编写代码时,我们有时并没有显式地告诉编程语言变量的类型是什么,而是让编程语言自己去猜测。这个过程就叫做类型推断。

  • 尖括号语法
let value: any = "Hello, TypeScript!";
let length: number = (<string>value).length;
console.log(length); // 输出:19
  • as语法:
    
let value: any = "Hello, TypeScript!";
let length: number = (value as string).length;
console.log(length); // 输出:19

联合类型

联合类型表示一个变量可以拥有多种可能的类型,使用 | 符号定义。

let value: string | number;
value = "Hello, TypeScript!";
console.log(value.length); // 可以访问string类型的属性和方法
value = 42;
console.log(value.toFixed(2)); // 可以访问number类型的属性和方法
实现原理:

联合类型的实现原理是 TypeScript 编译器会根据变量的使用上下文进行类型推断。在不同的上下文中,编译器将根据实际赋值情况确定变量的类型。

交叉类型

交叉类型表示一个变量可以同时拥有多种类型的属性,使用 & 符号定义。

interface Dog {
    bark(): void;
    run(): void;
}

interface Bird {
    fly(): void;
    chirp(): void;
}

type BirdDog = Dog & Bird;

let myPet: BirdDog = {
    bark() {
        console.log("Woof!");
    },
    run() {
        console.log("Running");
    },
    fly() {
        console.log("Flying");
    },
    chirp() {
        console.log("Chirp");
    }
};
应用场景:
  • 在需要同时使用多种类型属性的场景,如对象的组合。
  • 在 mixins 模式中,将多个对象的功能组合到一个对象中。
实现原理:

交叉类型的实现原理是通过合并多个类型的属性,创建一个新的类型,使得新类型拥有各个类型的属性。

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值