Skip to content

Commit 0e07a6a

Browse files
guuszzclaude
andcommitted
docs(pt): translate handbook-v2/Type Declarations
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 3a50924 commit 0e07a6a

1 file changed

Lines changed: 100 additions & 0 deletions

File tree

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
---
2+
title: Declarações de Tipo
3+
layout: docs
4+
permalink: /pt/docs/handbook/2/type-declarations.html
5+
oneline: "Como o TypeScript fornece tipos para JavaScript não tipado."
6+
---
7+
8+
Ao longo das seções que você leu até agora, estivemos demonstrando conceitos básicos do TypeScript usando as funções embutidas presentes em todos os runtimes de JavaScript.
9+
No entanto, quase todo JavaScript hoje inclui muitas bibliotecas para realizar tarefas comuns.
10+
Ter tipos para as partes da sua aplicação que _não são_ o seu código vai melhorar muito a sua experiência com TypeScript.
11+
De onde vêm esses tipos?
12+
13+
## Com o Que se Parecem as Declarações de Tipo?
14+
15+
Digamos que você escreva um código como este:
16+
17+
```ts twoslash
18+
// @errors: 2339
19+
const k = Math.max(5, 6);
20+
const j = Math.mix(7, 8);
21+
```
22+
23+
Como o TypeScript sabia que `max` estava presente, mas `mix` não, mesmo que a implementação de `Math` não fizesse parte do seu código?
24+
25+
A resposta é que existem _arquivos de declaração_ (declaration files) descrevendo esses objetos embutidos.
26+
Um arquivo de declaração fornece uma forma de _declarar_ a existência de alguns tipos ou valores sem realmente fornecer implementações para esses valores.
27+
28+
## Arquivos `.d.ts`
29+
30+
O TypeScript tem dois tipos principais de arquivos.
31+
Arquivos `.ts` são arquivos de _implementação_ que contêm tipos e código executável.
32+
Esses são os arquivos que produzem saídas `.js`, e são onde você normalmente escreveria seu código.
33+
34+
Arquivos `.d.ts` são arquivos de _declaração_ que contêm _apenas_ informação de tipo.
35+
Esses arquivos não produzem saídas `.js`; eles são usados apenas para verificação de tipos.
36+
Vamos aprender mais sobre como escrever nossos próprios arquivos de declaração mais tarde.
37+
38+
## Definições de Tipo Embutidas
39+
40+
O TypeScript inclui arquivos de declaração para todas as APIs embutidas padronizadas disponíveis nos runtimes de JavaScript.
41+
Isso inclui coisas como métodos e propriedades de tipos embutidos como `string` ou `function`, nomes de nível superior como `Math` e `Object`, e seus tipos associados.
42+
Por padrão, o TypeScript também inclui tipos para coisas disponíveis ao rodar dentro do navegador, como `window` e `document`; estes são coletivamente chamados de APIs do DOM.
43+
44+
O TypeScript nomeia esses arquivos de declaração com o padrão `lib.[algo].d.ts`.
45+
Se você navegar até um arquivo com esse nome, pode saber que está lidando com alguma parte embutida da plataforma, não com código do usuário.
46+
47+
### Configuração `target`
48+
49+
Os métodos, propriedades e funções disponíveis para você variam, na verdade, com base na _versão_ do JavaScript em que seu código está rodando.
50+
Por exemplo, o método `startsWith` de strings está disponível apenas a partir da versão do JavaScript conhecida como _ECMAScript 6_.
51+
52+
Estar ciente de qual versão do JavaScript seu código vai rodar no fim das contas é importante porque você não quer usar APIs que são de uma versão mais nova do que a plataforma na qual você faz deploy.
53+
Esta é uma das funções da configuração de compilador [`target`](/tsconfig#target).
54+
55+
O TypeScript ajuda com esse problema variando quais arquivos `lib` são incluídos por padrão com base na sua configuração [`target`](/tsconfig#target).
56+
Por exemplo, se [`target`](/tsconfig#target) for `ES5`, você vai ver um erro ao tentar usar o método `startsWith`, porque esse método só está disponível no `ES6` ou posterior.
57+
58+
### Configuração `lib`
59+
60+
A configuração [`lib`](/tsconfig#lib) permite um controle mais granular sobre quais arquivos de declaração embutidos são considerados disponíveis no seu programa.
61+
Veja a página de documentação sobre [`lib`](/tsconfig#lib) para mais informações.
62+
63+
## Definições Externas
64+
65+
Para APIs não embutidas, há uma variedade de formas de obter arquivos de declaração.
66+
Como você faz isso depende exatamente de qual biblioteca você está obtendo tipos.
67+
68+
### Tipos Empacotados
69+
70+
Se uma biblioteca que você está usando é publicada como um pacote npm, ela pode já incluir arquivos de declaração de tipo como parte de sua distribuição.
71+
Você pode ler a documentação do projeto para descobrir, ou simplesmente tentar importar o pacote e ver se o TypeScript consegue resolver os tipos automaticamente para você.
72+
73+
Se você é autor de um pacote considerando empacotar definições de tipo com seu pacote, pode ler nosso guia sobre [empacotar definições de tipo](/docs/handbook/declaration-files/publishing.html#including-declarations-in-your-npm-package).
74+
75+
### DefinitelyTyped / `@types`
76+
77+
O [repositório DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped/) é um repo centralizado que armazena arquivos de declaração para milhares de bibliotecas.
78+
A grande maioria das bibliotecas comumente usadas tem arquivos de declaração disponíveis no DefinitelyTyped.
79+
80+
Definições no DefinitelyTyped também são publicadas automaticamente no npm sob o escopo `@types`.
81+
O nome do pacote de tipos é sempre o mesmo que o nome do próprio pacote subjacente.
82+
Por exemplo, se você instalou o pacote npm `react`, pode instalar seus tipos correspondentes rodando
83+
84+
```sh
85+
npm install --save-dev @types/react
86+
```
87+
88+
O TypeScript encontra automaticamente definições de tipo em `node_modules/@types`, então não há nenhum outro passo necessário para deixar esses tipos disponíveis no seu programa.
89+
90+
### Suas Próprias Definições
91+
92+
No caso incomum de uma biblioteca não empacotar seus próprios tipos e não ter uma definição no DefinitelyTyped, você pode escrever um arquivo de declaração você mesmo.
93+
Veja o apêndice [Escrevendo Arquivos de Declaração](/docs/handbook/declaration-files/introduction.html) para um guia.
94+
95+
Se você quiser silenciar avisos sobre um módulo específico sem escrever um arquivo de declaração, também pode declarar rapidamente o módulo como tipo `any` colocando uma declaração vazia para ele em um arquivo `.d.ts` no seu projeto.
96+
Por exemplo, se você quisesse usar um módulo chamado `some-untyped-module` sem ter definições para ele, você escreveria:
97+
98+
```ts twoslash
99+
declare module "some-untyped-module";
100+
```

0 commit comments

Comments
 (0)