Skip to content

Commit b39f67f

Browse files
committed
docs(pt): translate handbook-v2/Understanding Errors
Adds the Brazilian Portuguese translation of "Understanding Errors" from the TypeScript v2 Handbook. This was missing from pt/ — handbook-v2/ was not started in Portuguese yet. Translation choices: - "assignable to" → "atribuível a" (with the English term in parens on first use, matching the convention I saw in other pt/ files) - "elaborations" → "detalhamento" (more natural than the literal "elaborações") - Kept English code identifiers as-is per the existing convention - Preserved twoslash code blocks unchanged - Adapted the permalink to /pt/docs/... - Adapted the Cat/Animal example to Gato/Animal for natural reading flow Source: microsoft/TypeScript-Website @ packages/documentation/copy/en/handbook-v2/Understanding Errors.md Happy to iterate on terminology choices if there's a glossary I missed.
1 parent 3a50924 commit b39f67f

1 file changed

Lines changed: 71 additions & 0 deletions

File tree

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
title: Entendendo Erros
3+
layout: docs
4+
permalink: /pt/docs/handbook/2/understanding-errors.html
5+
oneline: "Como ler erros do TypeScript."
6+
---
7+
8+
# Entendendo Erros
9+
10+
Sempre que o TypeScript encontra um erro, ele tenta explicar o que deu errado com o máximo de detalhes possível.
11+
Como seu sistema de tipos é estrutural, isso geralmente significa fornecer descrições um tanto longas de onde ele encontrou um problema.
12+
13+
## Terminologia
14+
15+
Existe alguma terminologia que você verá com frequência em mensagens de erro e que é útil entender.
16+
17+
#### _atribuível a_ (assignable to)
18+
19+
O TypeScript considera um tipo _atribuível a_ outro tipo se um for um substituto aceitável para o outro.
20+
Em outras palavras, um `Gato` é _atribuível a_ um `Animal` porque um `Gato` é um substituto aceitável para um `Animal`.
21+
22+
Como o nome indica, essa relação é usada para verificar a validade de uma atribuição `t = s;` examinando os tipos de `t` e `s`.
23+
Também é usada para verificar a maioria dos outros lugares onde dois tipos interagem.
24+
Por exemplo, ao chamar uma função, o tipo de cada argumento deve ser _atribuível ao_ tipo declarado do parâmetro.
25+
26+
Informalmente, se você ver `T não é atribuível a S` (`T is not assignable to S`), pode pensar nisso como o TypeScript dizendo "_`T` e `S` não são compatíveis_".
27+
No entanto, observe que essa é uma relação _direcional_: `S` ser atribuível a `T` não implica que `T` seja atribuível a `S`.
28+
29+
## Exemplos
30+
31+
Vamos olhar para alguns exemplos de mensagens de erro e entender o que está acontecendo.
32+
33+
### Detalhamento de Erros
34+
35+
Cada erro começa com uma mensagem principal, às vezes seguida por mais sub-mensagens.
36+
Você pode pensar em cada sub-mensagem como uma resposta a uma pergunta "por quê?" sobre a mensagem acima dela.
37+
Vamos trabalhar com alguns exemplos para ver como elas funcionam na prática.
38+
39+
Aqui está um exemplo que produz uma mensagem de erro mais longa do que o próprio exemplo:
40+
41+
```ts twoslash
42+
// @errors: 2322
43+
let a: { m: number[] };
44+
let b = { m: [""] };
45+
a = b;
46+
```
47+
48+
O TypeScript encontrou um erro ao verificar a última linha.
49+
Sua lógica para emitir um erro segue da sua lógica para determinar se a atribuição é válida:
50+
51+
1. O tipo de `b` é atribuível ao de `a`? Não. Por quê?
52+
2. Porque o tipo da propriedade `m` é incompatível. Por quê?
53+
3. Porque a propriedade `m` de `b` (`string[]`) não é atribuível à propriedade `m` de `a` (`number[]`). Por quê?
54+
4. Porque o tipo de elemento de um array (`string`) não é atribuível ao do outro (`number`)
55+
56+
### Propriedades Extras
57+
58+
```ts twoslash
59+
// @errors: 2322
60+
type A = { m: number };
61+
const a: A = { m: 10, n: "" };
62+
```
63+
64+
### Atribuições de União
65+
66+
```ts twoslash
67+
// @errors: 2322
68+
type Thing = "none" | { name: string };
69+
70+
const a: Thing = { name: 0 };
71+
```

0 commit comments

Comments
 (0)