Ich möchte eine Schnittstelle definieren, die über beliebige Eigenschaften verfügt, deren Typ immer gleich ist. Z.B.So definieren Sie eine Schnittstelle mit einer beliebigen Anzahl von Eigenschaften eines bestimmten Typs in TypeScript
type Reducer<S, P> = (state: S, payload: P) => S
interface Reducers {
[name: string]: Reducer
}
und dann verwenden, etwa so:
interface MyState {
foo?: string
bar?: string
}
const reducers: Reducers = {
r1: (state: MyState, payload: string) => {
return {foo: payload}
}
}
Allerdings kann ich nicht bekommen dies zu kompilieren. Der Compilerfehler lautet:
Fehler TS2314: Generischer Typ 'Reducer' benötigt 2 Argument (e).
Was mache ich falsch?
Was ist 'r1', ein Literaleigenschaftsname oder eine Variable? Und was ist dein Compilerfehler? – Sefe
'r1' ist nur ein Eigenschaftenname. Ich möchte ein Objekt, das 'Reducers' implementiert, um beliebig viele Eigenschaften vom Typ 'Reducer' zu haben. Compilerfehler hinzugefügt. – harryg