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
必须是 number
或 string
类型或其子类型。
通过接口进行约束
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 } };
-
在这个例子中,
T extends MyInterface
表示T
必须是实现了MyInterface
接口的类型。
总的来说,extends
关键字用于对类型参数进行约束,确保其符合特定的条件,从而提高 TypeScript 代码的类型安全性。
右侧赞助一下 代码改变世界一块二块也是爱
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2020-11-14 js重复赋值 js数据交换 js调式方法
2020-11-14 JavaScript变量