我有一个带有声明类型的函数,该函数返回带有回调和对象的元组:
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)
}
...
因为在此示例中,a
和b
的类型为any
,而不是通用的T&U