Skip to content

Commit 00e1fee

Browse files
author
Orta Therox
authored
Merge pull request #72 from Perkles/pt-br-perkles-documentation-declaration-files
[PT-BR] By Example.md and Do's and Dont's.md
2 parents abec976 + a8cbd45 commit 00e1fee

File tree

2 files changed

+491
-0
lines changed

2 files changed

+491
-0
lines changed
Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
---
2+
title: Declaration Reference
3+
layout: docs
4+
permalink: /pt/docs/handbook/declaration-files/by-example.html
5+
oneline: "Como criar um arquivo d.ts para um módulo"
6+
---
7+
8+
O propósito desse guia é te ensinar como escrever um arquivo de definição de alta qualidade.
9+
A estrutura desse guia exibe a documentação de uma API, juntamente com amostras de uso e explicações de como escrever a declaração correspondente.
10+
11+
Esses exemplos são ordenados por ordem crescente aproximada de complexidade.
12+
13+
## Objetos com Propriedades
14+
15+
_Documentação_
16+
17+
> A variável global `minhaLib` possui uma função `criaCumprimento` para criar saudações,
18+
> e uma propriedade `numeroDeCumprimentos` indicando o numero de cumprimentos feitos ate ali.
19+
20+
_Código_
21+
22+
```ts
23+
let resultado = minhaLib.criaCumprimento("Olá, mundo");
24+
console.log("O cumprimento computado é:" + resultado);
25+
26+
let count = minhaLib.numeroDeCumprimentos;
27+
```
28+
29+
_Declaração_
30+
31+
Use `declare namespace` para descrever tipos ou valores acessados via notação por ponto.
32+
33+
```ts
34+
declare namespace minhaLib {
35+
function criaCumprimento(s: string): string;
36+
let numeroDeCumprimentos: number;
37+
}
38+
```
39+
40+
## Funções Sobrecarregadas
41+
42+
_Documentação_
43+
44+
A função `pegaFerramenta` aceita um número e retorna uma Ferramenta, ou aceita uma string e retorna um array de Ferramentas.
45+
46+
_Código_
47+
48+
```ts
49+
let x: Ferramenta = pegaFerramenta(43);
50+
51+
let arr: Ferramenta[] = pegaFerramenta("todas");
52+
```
53+
54+
_Declaração_
55+
56+
```ts
57+
declare function pegaFerramenta(n: number): Ferramenta;
58+
declare function pegaFerramenta(s: string): Ferramenta[];
59+
```
60+
61+
## Tipos Reutilizáveis (Interfaces)
62+
63+
_Documentação_
64+
65+
> Ao especificar uma saudação, você deve passar um objeto `ConfiguracoesCumprimento`.
66+
> Esse objeto tem as seguintes propriedades:
67+
>
68+
> 1 - cumprimento: String obrigatória
69+
>
70+
> 2 - duracao: Comprimento de tempo opcional (em milissegundos)
71+
>
72+
> 3 - cor: String opcional, ex: '#ff00ff'
73+
74+
_Código_
75+
76+
```ts
77+
cumprimenta({
78+
cumprimento: "olá mundo",
79+
duracao: 4000
80+
});
81+
```
82+
83+
_Declaração_
84+
85+
Use uma `interface` para definir um tipo com propriedades.
86+
87+
```ts
88+
interface ConfiguracoesCumprimento {
89+
cumprimento: string;
90+
duracao?: number;
91+
cor?: string;
92+
}
93+
94+
declare function cumprimenta(setting: ConfiguracoesSaudacao): void;
95+
```
96+
97+
## Tipos reutilizáveis (Tipo Aliases)
98+
99+
_Documentação_
100+
101+
> Em qualquer lugar que um cumprimento é esperado, você pode prover uma `string`, uma função retornando uma `string`, ou uma instancia de `Cumprimentador`.
102+
103+
_Código_
104+
105+
```ts
106+
function pegaCumprimento() {
107+
return "oopa";
108+
}
109+
class MeuCumprimentador extends Cumprimentador {}
110+
111+
cumprimenta("olá");
112+
cumprimenta(pegaCumprimento);
113+
cumprimenta(new MeuCumprimentador());
114+
```
115+
116+
_Declaração_
117+
118+
Você pode usar um alias para fazer uma abreviação para um tipo:
119+
120+
```ts
121+
type ComoUmCumprimentador = string | (() => string) | MeuCumprimentador;
122+
123+
declare function cumprimenta(g: ComoUmCumprimentador): void;
124+
```
125+
126+
## Organizando Tipos
127+
128+
_Documentação_
129+
130+
> O objeto `cumprimentador` pode passar log para um arquivo ou mostrar um alerta.
131+
> Você pode prover LogOptions para `.log(...)` e opções de alerta para `.alert(...)`
132+
133+
_Código_
134+
135+
```ts
136+
const g = new Cumprimentador("Olá");
137+
g.log({ verbose: true });
138+
g.alert({ modal: false, title: "Cumprimento Atual" });
139+
```
140+
141+
_Declaração_
142+
143+
Use namespaces para organizar tipos.
144+
145+
```ts
146+
declare namespace CumprimentoLib {
147+
interface LogOptions {
148+
verbose?: boolean;
149+
}
150+
interface AlertOptions {
151+
modal: boolean;
152+
title?: string;
153+
color?: string;
154+
}
155+
}
156+
```
157+
158+
Voce também pode criar namespaces aninhados em uma declaração:
159+
160+
```ts
161+
declare namespace CumprimentoLib.Options {
162+
// Faz referência via CumprimentoLib.Options.Log
163+
interface Log {
164+
verbose?: boolean;
165+
}
166+
interface Alert {
167+
modal: boolean;
168+
title?: string;
169+
color?: string;
170+
}
171+
}
172+
```
173+
174+
## Classes
175+
176+
_Documentação_
177+
178+
> Você pode criar um cumprimentador ao instanciar o objeto `Cumprimentador`, ou ao criar um cumprimentador customizado ao estendê-lo.
179+
180+
_Código_
181+
182+
```ts
183+
const MeuCumprimentador = new Cumprimentador("Olá, mundo");
184+
MeuCumprimentador.cumprimento = "oopa";
185+
MeuCumprimentador.mostraCumprimento();
186+
187+
class CumprimentadorEspecial extends Cumprimentador {
188+
constructor() {
189+
super("Cumprimentador muito especial");
190+
}
191+
}
192+
```
193+
194+
_Declaração_
195+
196+
Use `declare class` para descrever uma classe ou um objeto semelhante a classe.
197+
Classes também podem possuir propriedades e métodos assim como um construtor.
198+
199+
```ts
200+
declare class Cumprimentador {
201+
constructor(cumprimento: string);
202+
203+
cumprimento: string;
204+
mostraCumprimento(): void;
205+
}
206+
```
207+
208+
## Variáveis Globais
209+
210+
_Documentação_
211+
212+
> A variável global `foo` contém o numero de ferramentas atual.
213+
214+
_Código_
215+
216+
```ts
217+
console.log("Metade do numero de ferramentas é " + foo / 2);
218+
```
219+
220+
_Declaração_
221+
222+
Use `declare var` para declarar variáveis.
223+
Se a variável é apenas-leitura, você pode usar `declare const`.
224+
Você também pode usar `declare let` se a variável é de escopo-fechado.
225+
226+
```ts
227+
/** O numero de ferramentas atual */
228+
declare var foo: number;
229+
```
230+
231+
## Global Functions
232+
233+
_Documentação_
234+
235+
> Você pode chamar a função `cumprimenta` com uma string para mostrar um cumprimento para o usuário.
236+
237+
_Código_
238+
239+
```ts
240+
cumprimenta("olá, mundo");
241+
```
242+
243+
_Declaração_
244+
245+
Use `declare function` para declarar funções.
246+
247+
```ts
248+
declare function cumprimenta(cumprimento: string): void;
249+
```
250+

0 commit comments

Comments
 (0)