Môžem deklarovať rozhrania TypeScriptu v samostatnom súbore a používať ich bez toho, aby som ich niekedy importoval?


Práve teraz musím buď deklarovať rozhranie presne tam, kde ho používam, alebo import {ISomeInterface} from './somePlace'. Existuje spôsob, ako jednoducho deklarovať rozhrania v súboroch something.interface.ts a používať tie rozhrania bez ich importovania?

Napríklad, ja neprihlasujem @types/node, aby som používal rozhrania deklarované v @types/node, správne? Chcel by som to robiť aj s vlastnými rozhraniami.

Odpoveď č. 1

Typy môžete deklarovať globálne. Ak deklarujete súbor ts alebo d.ts, ktorý nič neexportuje a nepoužíva žiadny príkaz import, váš súbor sa bude považovať za pridaný do globálneho rozsahu. Môžete použiť import typov, ak potrebujete pristupovať k typom z modulov, pomocou import('moduleName').Type.

Môžete tiež použiť declare global vo vnútri súboru, ktorý obsahuje importy:

import { Type } from 'module'
declare global {
    interface GlobalInterface {
        o: Type 
    }
}