2017-01-21 2 views
0

Mit Blick auf die definition file for the commander project, können Sie dies in einer der Schnittstellen sehen es verwendet:Kann ich einem vorhandenen Typ in TypeScript Member hinzufügen?

interface IExportedCommand extends ICommand { 
    Command: commander.ICommandStatic; 
    Option: commander.IOptionStatic; 
    [key: string]: any; 
} 

Der allumfassende [key: string]: any; ist schön, aber ich bin gespannt, ob ich das ein wenig schöner machen könnte durch Erweitern des Typs in meinen eigenen Dateien mit speziell benannten Mitgliedern.

Leider bin ich wegen des Namensraum- und Modulverhaltens (etwas, womit ich wirklich nur noch zu 85% vertraut bin) nicht ganz bei der richtigen Beschwörung.

Ich fühle mich irgendwie durch Deklaration Verschmelzung, ich kann bekommen, was ich Mitglieder dieser Schnittstelle hinzufügen möchte. Oder vielleicht ist es nicht möglich, und ich kann einfach nicht die Tatsache, die Spur zu kommen ...

Antwort

-1

Sie können

interface IExportedCommand { 
    myOption: string; 
} 

auf Ihre Datei einfach hinzufügen Wenn Sie verwenden möchten, diese in mehrere Dateien erstreckt ich recommed Sie füge es in eine separate Datei ein. Wenn Ihre IDE sie nicht automatisch lädt, erzwingen Sie sie durch Referenzkommentar im Header.

/// <reference path="path/to/your/file.ts" /> 
+0

Ziemlich sicher, dass Sie '///' Referenzen in TS nicht mehr verwenden sollten. –

Verwandte Themen