Typescript: Suprascrie variabila declarată anterior


Lucrez la un fișier de declarație Typescript, iar unul dintre tipurile pentru bibliotecă se numește 'Image', așa cum se arată mai jos.

declare class Image {
    static fromData(data: Data): Image;
    static fromFile(filePath: string): Image;
}

Din păcate, primesc o eroare care spune că 'Image' este un identificator duplicat și nu îl pot folosi.

../../../../usr/local/lib/node_modules/typescript/lib/lib.dom.d.ts:16908:13 - error TS2300: Duplicate identifier 'Image'.

16908 declare var Image: {
                  ~~~~~

  index.d.ts:2:15
    2 declare class Image {
                    ~~~~~
    'Image' was also declared here.

Există vreo modalitate prin care să pot suprascrie declarația anterioară (care nici măcar nu este un tip, ci doar un constructor pentru HTMLImageElement) și să o refolosesc? Mulțumesc

Răspuns #1

Acesta este motivul pentru care ar trebui să preferați întotdeauna tipurile exportate în detrimentul celor ambientale (globale, stocate în fișiere *.d.ts).

Doar creează un fișier, de exemplu types.ts, cu următorul conținut

export class Image {
    static fromData(data: Data): Image;
    static fromFile(filePath: string): Image;
}

apoi importă-l ca de obicei import {Image} from './types'

dacă încă ai un conflict, poți face asta import {Image as MyImage} from './types'