如何在TypeScript的d.ts文件中创建通用接口

时间:2019-12-05 20:20:18

标签: javascript typescript typescript-typings typescript-generics

我有一个带有声明类型的函数,该函数返回带有回调和对象的元组:

const fn = <T, U>(a: T, b :U) => {
    const inner = (a: T, b: U): Promise<T> => {
        return Promise.resolve(a)
    }

    const obj: { a: T, b : U} = { a, b }

    return [inner, obj]
}

现在,我想将所有类型移动到单独的d.ts文件中,并创建一个“干净”的界面:

const fn: FuncInterface = (a, b) => {
    const inner = (a, b) => {
        return Promise.resolve(a)
    }

    const obj = { a, b }

    return [inner, obj]
}

可能的界面:

type Tuple<T, U> = [(a: T, b: U) => Promise<T>, {a: T, b : U}]

interface FuncInterface {
    <T, U>(a: T, b: U): Tuple<T, U>
}

但是在这里如何声明a & b parameters的类型:

...
const inner = (a, b) => {
   return Promise.resolve(a)
}
...

因为在此示例中,ab的类型为any,而不是通用的T&U

0 个答案:

没有答案