Búsqueda de sitios web

typescript - Cómo importar un enum en un archivo de declaración de interfaz (d.ts)


Quiero extender string con un método al que se le debe pasar una enumeración. ¿Cómo importo esa enumeración en el archivo de declaración?

EstiloDeCapitalización.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;
}

La importación rompe la declaración de la interfaz, como si la declaración ya no existiera. Todas las implementaciones de extensión de la clase String se vuelven inválidas tan pronto como agrego la importación:

StringExtensions.tsx:

Proyecto de ejemplo reproducible mínimo: https://wetransfer.com/downloads/d1a707c0ac734985b877058967c35a6820171212143715/410f48

Respuesta #1

Dado que no tienes una exportación por defecto de ese módulo, necesitas envolverlo en {}:

import { CapitalizationStyle } from "Utils/CapitalizationStyle";

Respuesta #2

Intenta envolverlo entre llaves, así:

import {CapitalizationStyle} from "Utils/CapitalizationStyle";

ya que no exportas por defecto tu enumeración personalizada.

Artículos relacionados