Typescript 从类型化函数中提取接口/类型
如果我有一个我正在导入的类型化函数名为Typescript 从类型化函数中提取接口/类型,typescript,typescript2.0,Typescript,Typescript2.0,如果我有一个我正在导入的类型化函数名为fooie const foo(opts: {name:string, vers?:number, init:(...args)=>void }) => [] 有没有办法将opts的类型从此函数提取到它自己的类型/接口中 即 接口IFooOpts= ?您可以使用和来提取类型别名中第一个参数的类型: declare function foo(opts: {name:string, vers?:number, init:(...args)=>
foo
ie
const foo(opts: {name:string, vers?:number, init:(...args)=>void }) => []
有没有办法将opts
的类型从此函数提取到它自己的类型/接口中
即
接口IFooOpts=
?您可以使用和来提取类型别名中第一个参数的类型:
declare function foo(opts: {name:string, vers?:number, init:(...args)=>void }) : []
type IFooOpts = typeof foo extends (opts: infer U) => any ? U : never;
这管用!谢谢,找到了一些文档的链接,这样我就可以理解了?@lonewarrior556添加了相关关键字的链接是否可以通过这种方式提取所有参数,即
typeof foo extends(…opts:infer…U)=>任何?U:从来没有代码>@lonewarrior556是的,你可以在3.0中使用。看看这里基本上是“类型的foo扩展(…选项:推断U)=>任何?U:从来没有
declare function foo(opts: {name:string, vers?:number, init:(...args)=>void }) : []
type IFooOpts = typeof foo extends (opts: infer U) => any ? U : never;