赞助
posts - 449,comments - 12,views - 11万

extends 是一个关键字,用于指定类型参数的约束。它在类型参数的声明中使用,以确保类型参数满足特定的条件。

具体来说,extends 后面可以跟随一个类型,表示类型参数必须是该类型的子类型。在泛型类型或泛型函数中,这样的约束可以提供更强的类型安全性,使得类型参数符合特定的要求。

以下是一些示例说明 extends 的用法:

泛型类型的基本用法:

type MyType<T extends number> = {
  value: T;
};

const example: MyType<number> = {
  value: 42
};

在这个例子中,T extends number 表示 T 必须是 number 类型或其子类型。

多重约束:

复制代码
type MyType<T extends number | string> = {
  value: T;
};

const example1: MyType<number> = {
  value: 42
};

const example2: MyType<string> = {
  value: 'hello'
};
复制代码

在这个例子中,T extends number | string 表示 T 必须是 numberstring 类型或其子类型。

通过接口进行约束

复制代码
interface MyInterface {
  length: number;
}

type MyType<T extends MyInterface> = {
  data: T;
};

const example: MyType<string> = {
  data: 'hello' // Error: 'string' does not satisfy the constraint 'MyInterface'
};

const validExample: MyType<{ length: number }> = {
  data: { length: 5 }
};
复制代码
  1. 在这个例子中,T extends MyInterface 表示 T 必须是实现了 MyInterface 接口的类型。

总的来说,extends 关键字用于对类型参数进行约束,确保其符合特定的条件,从而提高 TypeScript 代码的类型安全性。

posted on   Tsunami黄嵩粟  阅读(235)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2020-11-14 js重复赋值 js数据交换 js调式方法
2020-11-14 JavaScript变量
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏