J'ai fait quelques recherches et je ne trouve pas de réponse qui semble résoudre ce problème particulier. Toute aide est la bienvenue. J'utilise actuellement des fermetures pour l'injection de dépendances de base et j'essaie d'éviter que les fonctions soient données "any";Obtenir le type de fonction à l'intérieur de la fermeture
Disons que je donne les résultats suivants:
// 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});
Je ne vois pas comment j'obtiendrais le typeof erySql dans l'interface de dépendances dans user-fns.ts
Le type de piscine était juste là pour que l'espace réservé dans l'exemple, pas de soucis sur cette partie;) Le est sans rapport avec les arguments qu'il est simplement une requête générique db SQL, de sorte que l'appelant spécifieront l'attend type de retour. J'ai effectivement pris une route légèrement différente en déclarant un type en tant que tel type d'exportation QuerySql = (requête: chaîne, args ?: any) => Promesse ; ' Cependant, je vais marquer votre réponse aussi correcte que c'est essentiellement la même chose. J'espérais juste que je n'aurais pas à redéclarer les typings de la fn est tout. :( –
Jed