2017-12-07 26 views
2

Ich möchte string mit einer Methode erweitern, die eine Enumeration übergeben muss. Wie importiere ich diese Enumeration in die Deklarationsdatei?Wie Enumeration in Schnittstelle Deklarationsdatei (D.ts) importieren

CapitalizationStyle.tsx:

export enum CapitalizationStyle { 
    None = 0, 
    Lowercase = 1, 
    Word = 2 
} 

StringExtensions.d.ts:

import { CapitalizationStyle } from "Utils/CapitalizationStyle"; //This line breaks everything. 

declare interface String { 
    applyCapitalizationStyle(this: string, style: CapitalizationStyle): string; 
} 

Der Import bricht die Interface-Deklaration, wie wenn die Erklärung nicht mehr existiert. Alle Erweiterung Implementierungen der String-Klasse so bald ungültig werden, wie ich den Import hinzu:

StringExtensions.tsx:

enter image description here

Minimal reproduzierbaren Beispielprojekt: https://wetransfer.com/downloads/d1a707c0ac734985b877058967c35a6820171212143715/410f48

+0

Können Sie genauer erklären "bricht alles"? Hast du einen TSLint Fehler? Ist es durch Änderung "TS1192: hat keinen Standard-Export"? – msanford

+0

Ich habe einige weitere Details in meinem ursprünglichen Beitrag hinzugefügt, um dies zu verdeutlichen. Dieser Import bricht die ganze Datei ab, so als ob keine der Deklarationen (StringExtensions.d.ts) mehr existiere, mache alle Implementierungen ungültig (StringExtension.tsx) – sixtstorm1

Antwort

2

Da Sie nicht tun Haben Sie einen Standard-Export von diesem Modul, müssen Sie es in {}:

import { CapitalizationStyle } from "Utils/CapitalizationStyle"; 
wickeln
+1

Es scheint, dass du 10 Sekunden schneller warst als ich! Bravo, +1! – gsamaras

+0

Danke, aber das ist nicht das Problem. Ich habe einige Details in meinem ursprünglichen Beitrag hinzugefügt. Das Problem ist nicht mit dem Import selbst, sondern dass es die Deklaration komplett durchbricht. – sixtstorm1

+0

@ sixtstorm1 Danke für das Hinzufügen von Details. Kannst du [plunkr] machen (https://plnr.co/)? – msanford

0

Versuchen Verpackung in geschweiften Klammern, wie folgt aus:

import {CapitalizationStyle} from "Utils/CapitalizationStyle"; 

, da Sie Ihre individuelle Aufzählung nicht Standard-Export.

Verwandte Themen