2017-12-11 3 views
0

Ich benutze Typescript und ant-Design-Bibliothek und ich versuche, eine der Schnittstellen zu erweitern, nur um einzelne Eigenschaft hinzuzufügen. kann ich die Original-Schnittstelle importieren (damit Sie wissen, die Struktur Ordner):Erweitern von externen Typdeklarationen in Typescript

import { CollapseProps } from 'antd/lib/collapse/Collapse';

Ich weiß nicht, aber, wie es zu verlängern.

ich einen typings/antd Ordner in Projektstamm angelegt haben, hinzugefügt Pfade Konfiguration tsconfig.json (und baseUrl):

"paths": { 
    "antd": [ 
    "node_modules/antd", 
    "typings/antd" 
    ] 
} 

Und ich versuchte, verschiedene Varianten erweitert Schnittstellen wie Export:

export interface CollapsePanelProps { 
    showArrow?: boolean; 
} 

in typings/antd/index.d.ts

oder ich habe versucht, die antd Ordnerstruktur nachzuahmen und setzen Sie die Collapse.d.ts Datei innerhalb typings/antd/collapse

oder versuchte deklarieren Namespace antd in meiner Typings-Datei und Putting-Schnittstelle in.

Nichts davon scheint zu funktionieren.

Antwort

0

Mein Verständnis ist, dass Deklarationsdateien nur wirklich für externe Javascript-Dateien sind.

Wären Sie in der Lage, einfach die ursprüngliche Schnittstelle zu erweitern und Ihre Schnittstelle in Ihrem Code zu verwenden?

import {CollapsePanelProps as OriginalCollapsePanelProps} from 'antd/Collapse'; 

export interface CollapsePanelProps extends OriginalCollapsePanelProps { 
    showArrow?: boolean; 
} 
+0

ja, das kann ich (in der Tat - ich glaube nicht verlängern wird auch benötigt, da ich verschmelzenden verstehe ich kann nur diese Stütze hinzufügen), aber das Problem ist, ich nicht diese Schnittstelle direkt verwenden. Ich verwende die Collapse.Panel-Komponente, die über diese Schnittstelle als eine reaktive Komponente definiert ist. Sobald ich 'showArrow' darauf anlege, wird sich das Typoskript beschweren. Ich suche also nach einer Möglichkeit, Typescript zu sagen, dass ich meine erweiterte Version sozusagen in ant verwenden soll. – apieceofbart

+0

Ich denke, Zusammenführung gilt nur für Deklarationen (d.ts Dateien) und nicht diese Art von Schnittstellen – tarling

+0

hmm aber diese Schnittstelle ist ursprünglich in d.ts Datei erstellt und ich möchte es auch in d.ts Datei zu erweitern – apieceofbart

Verwandte Themen