Arquivo de configuração tsconfig.json no TypeScript
O arquivo tsconfig.json permite configurar o projeto TypeScript. Especificamente, ele realiza as seguintes tarefas:
- Define o diretório raiz do projeto TypeScript.
- Configura os parâmetros de compilação.
- Define os arquivos do projeto.
Para utilizá-lo, basta adicionar manualmente um novo arquivo com o nome tsconfig.json na raiz do projeto.
typescript/ |-- tsconfig.json |-- app.ts |-- index.html
Estrutura do Arquivo
O tsconfig.json é um arquivo padrão no formato JSON que contém várias seções. A seção "compilerOptions" ajusta os parâmetros de compilação. Aqui, você pode definir as opções necessárias e seus respectivos valores. Os parâmetros são chamados da mesma forma que na linha de comando, e os valores fornecidos são equivalentes aos que seriam passados por linha de comando (ou terminal). Por exemplo:
{
  "compilerOptions": {
    "target": "es5",
    "removeComments": true,
    "outDir": "js",
    "sourceMap": true,
    "outFile": "main.js"
  }
}Neste exemplo, utilizam-se os mesmos parâmetros que seriam aplicados ao compilar via linha de comando.
- O parâmetro "target"especifica qual versão do JavaScript será usada durante a compilação
- O parâmetro "removeComments"remove os comentários.
- "outDir"define o diretório onde os arquivos compilados serão armazenados.
- "sourceMap"indica que deve ser gerado um mapa que associe os arquivos de origem aos arquivos compilados.
- "outFile"define o nome do arquivo de saída.
Outras opções de compilação podem ser incluídas conforme necessário.
Seção files
A seção files permite definir quais arquivos serão incluídos no projeto:
{
  "compilerOptions": {
    "target": "es5",
    "removeComments": true,
    "outFile": "../../built/local/tsc.js"
  },
  "files": [
    "app.ts",
    "interfaces.ts",
    "classes.ts"
  ]
}Se a seção files não estiver presente no arquivo tsconfig.json, o compilador incluirá, por padrão, todos os arquivos TypeScript (com as extensões *.ts e *.tsx) encontrados no diretório e subdiretórios do projeto. Caso contrário, somente os arquivos especificados em files serão usados.
Parâmetro exclude
O parâmetro exclude, por outro lado, permite excluir determinados arquivos da compilação:
{
  "compilerOptions": {
    "target": "es5",
    "removeComments": true,
    "outFile": "../../built/local/tsc.js"
  },
  "exclude": [
    "wwwroot",
    "node_modules"
  ]
}Neste exemplo, o compilador não considerará os arquivos TypeScript localizados nos diretórios especificados na seção exclude.
Vale notar que, se as seções files e exclude estiverem presentes no arquivo simultaneamente, a seção exclude será ignorada. Todos os arquivos referenciados pelos arquivos da seção files também serão compilados.
Parâmetro compileOnSave
O parâmetro compileOnSave, quando definido como true, instrui a IDE a gerar todos os arquivos JavaScript sempre que um arquivo TypeScript for salvo:
{
  "compileOnSave": true,
  "compilerOptions": {
    "target": "es5"
  }
}Uso do Arquivo tsconfig.json
O arquivo tsconfig.json é utilizado durante a compilação quando os nomes dos arquivos a serem compilados não são fornecidos diretamente ao compilador. Nesse caso, o compilador TypeScript examina o diretório atual, busca pelo arquivo tsconfig.json e, em seguida, usa os parâmetros definidos neste arquivo durante a compilação.
Se os nomes dos arquivos forem fornecidos ao compilador, como por exemplo tsc app.ts, o arquivo tsconfig.json será ignorado.
O catálogo completo das opções que podem ser aplicadas no tsconfig.json está disponível na documentação oficial.