Ich habe einige Suche herum und kann keine Antwort finden, die dieses spezielle Problem zu lösen scheint, die ich habe. Jede Hilfe wäre großartig.Art der Funktion innerhalb der Schließung
Ich verwende derzeit Schließungen für grundlegende Abhängigkeits-Injektion und ich versuche zu vermeiden, Funktionen erhalten "any";
Können sagen, ich habe folgendes:
// db-fns.ts
export const makeQuerySql = ({pool: SqlPool}) =>
<T>(query: string, args?: any): Promise<T> => {
// fn code
}
// user-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});
Ich kann nicht sehen, wie ich den Typ von Qu bekommen würde erySql in der Abhängigkeiten Schnittstelle in user-fns.ts
Der Pool Typ war es gerade so als Platzhalter in dem Beispiel, keine Sorgen auf diesem Teil;) Die ist auf die Argumente in keinem Zusammenhang, wie es auf SQL-Datenbank nur eine generische Abfrage ist, so wird der Anrufer die erwartet werden, die Angabe Rückgabetyp. Ich endete tatsächlich eine etwas andere Route bei der Deklaration eines Typs als solche Exportart QuerySql = (Abfrage: String, Args ?: alle) => Versprechen ; ' aber ich werde Ihre Antwort als richtig markieren Es ist im Wesentlichen das Gleiche. Ich hatte nur gehofft, ich würde nicht die Typisierungen der Fn alles neu deklarieren müssen. :( –
Jed