Pesquisa de site

Declarações ambientais do TypeScript e .d.ts


Na documentação do TypeScript sobre arquivos de declaração .d.ts, todas as assinaturas de funções e interfaces e coisas do tipo parecem ser exportadas. No entanto, estou familiarizado com a ideia de declarações ambiente em arquivos sem importações ou exportações, e tenho feito basicamente o que é descrito nesta resposta do StackOverflow para projetos. No meu caso, porém, não tenho usado .d.ts, apenas .ts e parece estar funcionando como pretendo. Eu apenas tenho um arquivo .ts na raiz do meu projeto com um monte de interfaces e tipos que se parecem assim

interface BuildContext {
    selectedBuild: import('./classes/build').Build
    setSelectedBuild: (buildId: number) => void
    modifySelectedBuild: (build: import('./classes/build').Build) => void
}

type StatData = {
    statId: number,
    statName: string,
    alias: string | null
}

Fazer importações dessa maneira foi explicado na resposta que eu linkei acima como uma forma de manter as declarações ambientais enquanto ainda se acessa definições em outros arquivos. Fora essas importações inline, não há importações ou exportações, e eu não parece ter nenhum problema. A parte .d de .d.ts é simplesmente uma convenção de nomenclatura ou tem algum propósito que eu não estou entendendo?

Meu tsconfig.json, se isso fizer diferença:

{
  "compilerOptions": {
    "outDir": "./dist/",
    "noImplicitAny": true,
    "module": "es6",
    "target": "es5",
    "jsx": "react",
    "allowJs": true,
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "resolveJsonModule": true
  }
}