1

eine einfache Schnittstelle wie Gegeben:Verwendung von `Schnittstelle I {foo: string; bar: Nummer; } `als Namensraum` (kann: I.foo) `?

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

Was ist die beste Art und Weise zu ermöglichen, ist:

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

(mein eigentlicher Code hat komplexere Schnittstellen-Typen für foo/bar, und meine f ist spezialisiert auf Handle eine Teilmenge von IHaz ... so will ich nicht trennen es in mehrere interface s)

Antwort

1

Die Syntax ist einzigartig für typescri pt Ich denke - es verwendet sogenannte indizierte Zugriffstypen für die

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

Die documentation says

... Operator T [K], die indizierte Zugriffsoperator. Hier spiegelt die Syntax des Typs die Ausdruckssyntax wider. Das bedeutet, dass die Person ['name'] den Typ Person ['name'] hat - was in unserem Beispiel nur eine Zeichenfolge ist.

+0

Seltsam. Gut zu wissen. +1 und akzeptiert –

Verwandte Themen