基于Typescript

时间:2018-01-27 03:48:07

标签: typescript typescript-typings

我需要从手工构建的对象文字中提取类型。我有以下内容:

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
}

有没有办法实现这个目标?如果是这样,有人会抛光或指向正确的方向吗?

1 个答案:

答案 0 :(得分:0)

我目前无法访问计算机,因此我无法对此进行验证,但此类内容应该有效,

interface extractedType { 
        getSomething: <A, AR> (a: A) => AR, 
        getSomethingElse: <B, BR> (b: B) => BR 
    }

你可能需要稍微玩一下,希望它有所帮助!

来源

https://www.typescriptlang.org/docs/handbook/generics.html

修改 链接到可能相关的线程,请参阅注释。

https://stackoverflow.com/a/44078574/7307141