私はいくつかの検索を行っており、私が持っているこの特定の問題を解決する答えを見つけることができません。どんな助けも素晴らしいだろう。閉鎖内の関数の型を取得する
私は現在、基本的な依存性注入のためにクロージャを使用していますが、関数が "any"になるのを避けようとしています。
には、以下の私が持っているとしましょう:
// 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});
私はtypeof quを得る方法がわかりません
export interface Dependencies {
querySql: <T>(query: string, args?: any) => Promise<T>
}
index.ts
型チェックでは次に、あなたのコード:user-fns.ts
例では、プレースホルダようにプールの種類は、ちょうどそこにその部分には何の心配はなかった。それは単にSQLのDBへの一般的なクエリだと)は、引数には無関係なので、呼び出し側は期待を指定します戻り値の型。 私は実際にそのようなタイプを宣言する際に少し異なるルートをとってしまいましたが、エクスポートタイプQuerySql = (query:string、args ?: any)=>約束; それは本質的に同じことです。 私はfnのタイプを再宣言する必要はないと思っていただけです。 :( –
Jed