Hvordan å "importere" et navnerom i en TypeScript-definisjonsfil
Type-definisjonen for moment.js er erklært innenfor et namespace:
declare namespace moment {
interface Moment {
...
For å deklarere et objekt av typen Moment, gjør jeg:
let myMoment: moment.Moment;
Mitt spørsmål er - finnes det en måte å "importere" moment-navnerommet på, slik at jeg kan unngå å gjenta det hele tiden? Veldig likt C#.
Svar #1
Jeg vet ikke om det finnes en måte å «importere» et helt namespace på, men du kan gjøre det element for element på denne måten:
type Moment = moment.Moment
Svar #2
Hvis du kan bruke ES6-stil imports, kan du enkelt gjøre noe som følgende.
import { Moment, Duration, OrAnyOtherExportedMemberFromMoment } from "moment";
let myMoment: Moment;
let myDuration: Duration;
Hvis du trenger dette i dine typdefinisjonsfiler fra kildefilen din:
Med compilerOptions.declaration satt til true i din tsconfig.json, og ved å bruke gulp-typescript (søk etter tsResult.dts.pipe), kan du generere typereduksjoner fra kildefilene dine.
Håper dette hjelper.
