1

Etant donnée une interface simple comme:Utilisation de `interface I {foo: string; barre: numéro; } `en tant qu'espace de noms` (can: I.foo) `?

interface IHaz { 
    foo: string; 
    bar: number; 
} 

Quelle est la meilleure façon de permettre:

export const f = (a: typeof IHaz.foo, b: typeof IHaz.bar) => {}; 

(mon code actuel a des interfaces plus complexes que les types de foo/bar, et mon f est spécialisé dans la gérer un sous-ensemble de IHaz ... donc je ne veux pas le séparer en plusieurs interface s)

Répondre

1

La syntaxe est unique à typescri Je pense pt - il utilise ce qu'on appelle les types d'accès indexé pour cette

export const f = (a: IHaz['foo'], b: IHaz['bar']) => {}; 

Le documentation says

... opérateur T [K], l'opérateur d'accès indexé. Ici, la syntaxe de type reflète la syntaxe d'expression. Cela signifie que la personne ['name'] a le type Person ['nom'] - qui dans notre exemple est juste une chaîne.

+0

Bizarre. Bon à savoir. +1 et accepté –