Re-exportă enum în TypeScript
Am un enum declarat undeva într-un submodul și aș dori să-l reexport în proiectul meu actual.
modul :
export enum name {
TOTO = "toto",
TITI = "titi",
}
exportă :
import { name } from "module"
export type name2 = name
index.ts:
switch (var) {
case name2.toto: // 'name2' only refers to a type, but is being used as a value here.
}
Cum pot să nu pierd informația că name2 este inițial un enum?
Răspuns #1
Reexportul tău ar trebui să fie:
export { name as name2 };
Acesta poate fi folosit cu orice tip de nume declarat: variabilă, enumerare, clasă etc.
Răspunsul #2
Metoda sugerată nu a funcționat pentru mine, deoarece import nume astfel:
import * as API from './__generated__/api/data-contracts.ts'
În astfel de circumstanțe, nu îl exporți pur și simplu ca:
export { API.name as name2 };
pentru că este o eroare.
Din fericire, am învățat în sfârșit o modalitate de a face acest lucru, datorită [email #javascript:
export type name2 = API.name;
export const name2 = API.name;
În acest fel, obținem ce e mai bun din ambele lumi - tipuri și valori. Și TS va stabili singur pe care dintre ele o dorește.
