Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 从类型化函数中提取接口/类型_Typescript_Typescript2.0 - Fatal编程技术网

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;