2017-07-25 1 views
1

Es gibt eine Klasse des Typs Action. Ich muss eine Funktion so deklarieren, dass sie einen Parameter einer Klasse benötigt, die Action zusammen mit zusätzlichen Parametern erweitert. Für die Ex:Parameter des generischen Typs erweitert eine Klasse

class Abc extends Action { 
    payload: any; 
} 

Meine eigentliche Funktion:

function xyz(action: Abc){ 
    // ... 
} 

Aber action: Abc sollte generic so etwas wie

action: {payload: string} extends Action 

Szenario (Optional) sein: ich mit diesem als NGRX 4 entfernt habe Schwierigkeiten Payload von Action, aber mein älterer Code erwartet Payload.

Antwort

1

Sie hatten es fast richtig. Ändern Sie ihn auf diesem

private xyz = (action: { payload: string } & Action) => { 
} 

Schauen Sie hier für Typescript Intersection types

Verwandte Themen