⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

TS infer 关键字:解开类型推断的魔法

学习 TypeScript infer 关键字,在条件类型中提取和推断类型。 · 难度:入门 · +15XP

infer 关键字的作用

infer 关键字用于条件类型中,它允许我们从一个类型中推断出另一个类型。常用于提取函数返回类型、数组元素类型等。

基本语法

type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;

function greet() { return 'hello'; } type GreetReturn = ReturnType<typeof greet>; // string

常见应用

模式说明示例
提取返回类型从函数类型提取返回类型ReturnType<F>
提取数组元素类型从数组类型提取元素类型type Element<T> = T extends (infer U)[] ? U : never
提取 Promise 值从 Promise 提取内部值类型type PromiseValue<T> = T extends Promise<infer V> ? V : T

代码示例

// 提取 Promise 内部类型
type Unwrap<T> = T extends Promise<infer U> ? U : T;

type Result1 = Unwrap<Promise<number>>; // number type Result2 = Unwrap<string>; // string

// 提取函数参数类型 type FirstParam<T> = T extends (first: infer P, ...args: any[]) => any ? P : never;

function log(name: string, age: number) {} type LogFirst = FirstParam<typeof log>; // string

练习提示

实现一个 ArrayItem 类型,接受一个数组类型,返回其元素类型。然后编写一个函数,使用该类型确保参数是字符串数组。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 200 篇
0 完成
🔥 0