我已经做了一些搜索,找不到似乎解决这个问题的答案。任何帮助都会很棒。在闭包中获取函数的类型
我目前正在使用闭包进行基本的依赖注入,我试图避免函数获得“任何”;
可以说我有以下几点:
// DB-fns.ts
export const makeQuerySql = ({pool: SqlPool}) =>
<T>(query: string, args?: any): Promise<T> => {
// fn code
}
//用户fns.ts
export const makeGetUser = ({querySql}: Dependencies) => (userId: number) => {
// fn code
}
export interface Dependencies {
querySql: ????
}
// index.ts
import {makeQuerySql} from 'db-fns.ts';
import {makeGetUser} from 'user-fns.ts';
const querySql = makeQuerySql({pool});
const getUser = makeGetUser({querySql});
我看不出我是怎么得到的类型erySql在user-fns.ts
池类型只是有这样的例子占位符,对部分无后顾之忧;) 的是毫无关系的论据,它只是一个普通的查询SQL数据库,所以调用者将被指定的预期返回类型。 我实际上最终采取了一种稍微不同的路由来声明一个类型为'export type QuerySql = (query:string,args ?: any)=> Promise ;' 但是我会将您的答案标记为正确它本质上是一回事。 我只是希望我不必重新宣布fn的类型是全部。 :( –
Jed