如果我要导入的键入函数称为foo
,即
const foo(opts: {name:string, vers?:number, init:(...args)=>void }) => []
是否可以从此函数中将opts
的类型提取到其自己的类型/接口中?
即
interface IFooOpts = <TYPE OF foo(OPTS)>
?
答案 0 :(得分:2)
您可以使用conditional type和inference behavior of conditional types来提取类型别名中第一个参数的类型:
declare function foo(opts: {name:string, vers?:number, init:(...args)=>void }) : []
type IFooOpts = typeof foo extends (opts: infer U) => any ? U : never;