Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/tsconfig-reference/copy/en/options/types.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ If `types` is specified, only packages listed will be included in the global sco
```json
{
"compilerOptions": {
"types": ["node", "jest", "lodash"]
"types": ["node", "jest", "express"]
}
}
```

This `tsconfig.json` file will _only_ include `./node_modules/@types/node`, `./node_modules/@types/lodash` and `./node_modules/@types/express`.
This `tsconfig.json` file will _only_ include `./node_modules/@types/node`, `./node_modules/@types/jest` and `./node_modules/@types/express`.
Other packages under `node_modules/@types/*` will not be included.

### What does this affect?
Expand Down
42 changes: 42 additions & 0 deletions packages/tsconfig-reference/copy/pt/options/esModuleInterop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
display: "Interoperabilidade de Módulo ES"
oneline: "Emite JS adicional para dar suporte ao importar módulos commonjs"
---

Permite interoperabilidade de emição entre Módulos CommonJS e ES através da criação de namespaces para todas as importações.

TypeScript adere ao padrão EcmaScript para módulos, o que significa que um arquivo com exportações teria que especificamente incluir uma exportação `default` para dar suporte à sintaxes como `import React from "react"`.
Este padrão de exportação é raro em módulos para CommonJS. Por exemplo, sem `esModuleInterop` como true:

```ts twoslash
// @checkJs
// @allowJs
// @allowSyntheticDefaultImports
// @filename: utilitarios.js
// @noImplicitAny: false
const obterTamanhoDaString = (str) => str.length;

module.exports = {
obterTamanhoDaString,
};

// @filename: index.ts
import utils from "./utilitarios";

const count = utils.obterTamanhoDaString("Checagem JS");
```

Isto não vai funcionar porque não existe um objeto `default` o qual você pode importar. Apesar de parecer que deveria.
Por conveniência, transpiladores como Babel vão criar um default automaticamente se não encontrarem um existente. Fazendo com que o módulo se pareça um pouco mais com isto:

```js
// @filename: utilitarios.js
const obterTamanhoDaString = (str) => str.length;
const todasAsFuncoes = {
obterTamanhoDaString,
};

module.exports = todasAsFuncoes;
```

Ativando esta flag no compilador, a opção [`allowSyntheticDefaultImports`](#allowSyntheticDefaultImports) também será habilitada.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
display: "Resolução de Módulos"
oneline: "Permite a especificação de estratégias de resolução de módulos TypeScript 1.6"
---

Especifica a estratégia de resolução de módulos: `node` (Node.js) ou `classic` (utilizada no TypeScript antes da versão 1.6).
Você provavelmente não vai precisar utilizar `classic` em código mais recente.

Veja a página de referência em: [Resolução de Módulos](/docs/handbook/module-resolution.html)
39 changes: 39 additions & 0 deletions packages/tsconfig-reference/copy/pt/options/paths.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
display: "Caminhos"
oneline: "Um conjunto de locais para buscar importações"
---

Uma série de entradas que remapeiam as importações para locais de pesquisa relativos à `baseUrl`, há uma cobertura mais abrangente de `paths` no [manual](/docs/handbook/module-resolution.html#path-mapping).

`paths` permite que você declare como o TypeScript deve resolver importações nos seus `requires` e `imports`.

```json
{
"compilerOptions": {
"baseUrl": ".", // isto deve ser especificado se "paths" está especificado.
"paths": {
"jquery": ["node_modules/jquery/dist/jquery"] // este mapeamento é relativo à "baseUrl"
}
}
}
```

Isto permitiria que você escreva `import "jquery"`, e obtenha toda a digitação correta localmente.

```json
{
"compilerOptions": {
"baseUrl": "src",
"paths": {
"app/*": ["app/*"],
"config/*": ["app/_config/*"],
"environment/*": ["environments/*"],
"shared/*": ["app/_shared/*"],
"helpers/*": ["helpers/*"],
"tests/*": ["tests/*"]
},
}
```

Neste caso, você pode infomar o resolvedor de arquivos do TypeScript para dar suporte à vários prefixos personalizados para encontrar código.
Este padrão pode ser usado para evitar caminhos relativos longos no seu código base.
10 changes: 10 additions & 0 deletions packages/tsconfig-reference/copy/pt/options/preserveSymlinks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
display: "Preservar Symlinks"
oneline: "Não resolva caminhos de links simbólicos"
---

Esta opção serve para refletir a mesma flag do Node.js; que não resolve o caminho real de links simbólicos.

Esta flag também exibe o comportamento oposto ao da opção `resolve.symlinks` do Webpack (ou seja, definir `preserveSymlinks` do TypeScript para true é o mesmo que definir `resolve.symlinks` do Webpack para false, e vice-versa).

Com esta opção habilitada, as referências para módulos e pacotes (ex. diretivas `import` e `/// <reference type="..." />`) são todas resolvidas em relação ao local do symlink em si, em vez de relativas ao caminho que o symlink resolve.
21 changes: 21 additions & 0 deletions packages/tsconfig-reference/copy/pt/options/typeRoots.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
display: "Raizes de Tipo"
oneline: "Locais onde o TypeScript deve buscar por definições de tipo"
---

Por padrão todos pacotes `@types` _visíveis_ são incluídos na sua compilação.
Pacotes em `node_modules/@types` de qualquer diretório adjacente são considerados _visíveis_.
Por exemplo, isso significa pacotes dentro de `./node_modules/@types/`, `../node_modules/@types/`, `../../node_modules/@types/`, e assim por diante.

Se `typeRoots` está especificado, _somente_ pacotes dentro de `typeRoots` serão incluídos. Por exemplo:

```json
{
"compilerOptions": {
"typeRoots": ["./typings", "./vendor/types"]
}
}
```

Este arquivo de configuração vai incluir _todos_ os pacotes definidos em `./typings` e `./vendor/types` , e nenhum pacote de `./node_modules/@types`.
Todo os caminhos são relativos ao arquivo `tsconfig.json`.
40 changes: 40 additions & 0 deletions packages/tsconfig-reference/copy/pt/options/types.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
display: "Tipos"
oneline: "Utilizada para criar uma lista de tipos permitidos, a serem incluídos na compilação"
---

Por padrão todos pacotes `@types` _visíveis_ são incluídos na sua compilação.
Pacotes em `node_modules/@types` de qualquer diretório adjacente são considerados _visíveis_.
Por exemplo, isso significa pacotes dentro de `./node_modules/@types/`, `../node_modules/@types/`, `../../node_modules/@types/`, e assim por diante.

Se `types` está especificado, somente pacotes listados serão incluídos no escopo global. Por exemplo:

```json
{
"compilerOptions": {
"types": ["node", "jest", "express"]
}
}
```

Este arquivo `tsconfig.json` _somente_ irá incluir `./node_modules/@types/node`, `./node_modules/@types/jest` e `./node_modules/@types/express`.
Outros pacotes dentro de `node_modules/@types/*` não serão incluídos.

### O que isto reflete?

Esta opção não altera como `@types/*` são incluídos no código da sua aplicação, por exemplo se você tivesse o `compilerOptions` acima, com o seguinte código:

```ts
import * as moment from "moment";

moment().format("MMMM Do YYYY, h:mm:ss a");
```

O import `moment` estaria completamente tipado.

Quando você tem esta opção definida, ao não incluir um módulo no vetor de `types`, ela:

- Não vai adicionar globais ao seu projeto (p. ex. `process` no node, ou `expect` no Jest)
- Não vai fazer com que exports apareçam como recomendações de auto-import

Esta opção difere de [`typeRoots`](#typeRoots), pois serve para especificar somente os tipos exatos a serem incluídos, enquanto [`typeRoots`](#typeRoots) permite que você defina diretórios específicos.