返回
技术人员必备:揭秘Utility Types-Parameters&ReturnType上
前端
2023-09-26 22:33:32
探寻Utility Types的奥秘
Utility Types是Typescript中的一个功能,它提供了许多操作类型以构造类型的能力。类型系统为我们提供了抽象和复用类型的能力,而Utility Types可以进一步拓展这种能力。在本文中,我们将聚焦Utility Types中令人着迷的Parameters和ReturnType,探索它们如何构造新的类型。
Parameters
Parameters类型用于获取一个函数的参数类型。它接收一个函数作为参数,返回一个元组类型,其中元素类型就是函数的参数类型。
例如,如果我们有一个函数:
function add(a: number, b: number): number {
return a + b;
}
那么Parameters
[number, number]
这是因为add函数有两个参数,类型都是number。
ReturnType
ReturnType类型用于获取一个函数的返回值类型。它接收一个函数作为参数,返回函数的返回值类型。
例如,如果我们有一个函数:
function subtract(a: number, b: number): number {
return a - b;
}
那么ReturnType
number
这是因为subtract函数返回一个number类型。
神奇的infer
infer用于从类型中推断类型。它可以用于构造复杂的类型,例如条件类型和泛型类型。
例如,我们有一个函数:
function max(a: number, b: number): number {
if (a > b) {
return a;
} else {
return b;
}
}
我们可以使用infer关键字来推断max函数的返回值类型:
type MaxReturnType = ReturnType<typeof max>;
MaxReturnType的类型为:
number
这是因为max函数总是返回一个number类型。
结语
Utility Types是Typescript中的一个强大工具,它提供了许多操作类型以构造类型的能力。Parameters和ReturnType类型可以用于获取函数的参数类型和返回值类型,而infer关键字可以用于从类型中推断类型。
掌握Utility Types可以帮助我们编写更灵活、更强大的代码。赶快尝试一下吧!