Typescript-deklaration för exporterad klassinstans


Jag håller för närvarande på att skapa min första deklarationsfil för ett främmande bibliotek (react-native-background-timer). Biblioteket har dock en standardexport som jag inte är säker på hur jag ska deklarera i index.d.ts-filen.

Detta är bibliotekets standardexport:

export default new BackgroundTimer();

Jag vet hur man deklarerar exporterade klasser, men vad är det bästa sättet att deklarera en instans av en exporterad klass?

Mitt första tillvägagångssätt var:

declare class BackgroundTimer {
    [...]
}

declare const _BackgroundTimer: BackgroundTimer;
export default _BackgroundTimer;

Svar #1

Ja, detta är sättet att deklarera default export som exporterar en instans, det är dokumenterat på sidan för brytande ändringar för TypeScript 2.6. Tidigare var det möjligt att göra det i deklarationsfilen på en rad precis som i koden

export default new BackgroundTimer();

men att ha godtyckliga uttryck i export var inte tillåtet.