Skip to content

TS 获取函数类型

在平时开发中我们会给一个函数的参数和返回值都设置类型,当我们想使用该函数对应的一些类型时,可能会去 import 进行类型引入然后使用,在某些场景下或许可以考虑使用 ParametersReturnType 类型工具调整写法,这样只需要引入函数即可。

TypeScript
interface T {
    a: number;
    b: number;
}

interface R {
    ...
}

const func = (option: T): R => {

}

类型引用

TypeScript
import { func } from './utils'
import type { T, R } from './utils'

const options: T = {
    a: 1,
    b: 2
}

let result: R | null = null

// todo

result = func(options)

类型工具

  • Parameters 获取函数的参数,下标表示第几个参数。

  • ReturnType 获取函数的返回值。

TypeScript
import { func } from './utils'

const options: Parameters<typeof func>[0] = {
    a: 1,
    b: 2
}

let result: ReturnType<typeof func> | null = null

// todo

result = func(options)

提示

当然,这也因人而异,或许有的人认为类型引入这种写法看上去更简洁,便于阅读和理解。具体根据实际开发场景和团队的代码风格决定,因此,此处不给予 bed/good 字样。