我需要从手工构建的对象文字中提取类型。我有以下内容:
const makeFunc: { key: string, val: (p: TParam) => TResult } = <TParam, TResult>(p: TParam) => doSomething(p);
const myObj = {
getSomething: makeFunc(a),
getSomethingElse: makeFunc(b)
}
我们假设a
的类型为A
,而makeFunc(a)的类型为AR
,类似b
的类型为B
和makeFunc(b)的类型为BR
。现在我需要一个类似于这样的类型:
interface extractedType {
getSomething: (a: A) => AR,
getSomethingElse: (b: B) => BR
}
有没有办法实现这个目标?如果是这样,有人会抛光或指向正确的方向吗?
答案 0 :(得分:0)
我目前无法访问计算机,因此我无法对此进行验证,但此类内容应该有效,
interface extractedType {
getSomething: <A, AR> (a: A) => AR,
getSomethingElse: <B, BR> (b: B) => BR
}
你可能需要稍微玩一下,希望它有所帮助!
来源
https://www.typescriptlang.org/docs/handbook/generics.html
修改强> 链接到可能相关的线程,请参阅注释。