Skip to content

Commit b82b95f

Browse files
committed
Translate file global-modifying-modules
1 parent 23e8ef4 commit b82b95f

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
title: "Global: Módulo de modificação"
3+
layout: docs
4+
permalink: /pt/docs/handbook/declaration-files/templates/global-modifying-module-d-ts.html
5+
---
6+
7+
## _Módulos de modificação global_
8+
9+
Um _módulo de modificação global_ altera valores existentes no escopo global quando são importados.
10+
Por exemplo, pode existir uma biblioteca que adiciona novos membros ao `String.prototype` quando importada.
11+
Este padrão é de certa forma perigoso devido a possibilidade de conflitos em tempo de execução,
12+
mas ainda assim podemos escrever um arquivo de declaração para isso.
13+
14+
## Identificando módulos de modificação global
15+
16+
Módulos de modificação global são geralmente fáceis de identificar em sua documentação.
17+
No geral, são similares a plugins globais, mas precisam de uma chamada `require` para ativar seus efeitos.
18+
19+
Você pode ver uma documentação como essa:
20+
21+
```js
22+
// chamada ao 'require' que não utiliza o valor retornado
23+
var unused = require("magic-string-time");
24+
/* ou */
25+
require("magic-string-time");
26+
27+
var x = "hello, world";
28+
// Cria novos métodos em tipos nativos
29+
console.log(x.startsWithHello());
30+
31+
var y = [1, 2, 3];
32+
// Cria novos métodos em tipos nativos
33+
console.log(y.reverseAndSort());
34+
```
35+
36+
Aqui está um exemplo
37+
38+
```ts
39+
// Definições de tipo para [~NOME DA BIBLIOTECA~] [~NÚMERO DE VERSÃO OPCIONAL~]
40+
// Projeto: [~NOME DO PROJETO~]
41+
// Definições por: [~SEU NOME~] <[~UMA URL PARA VOCÊ~]>
42+
43+
/*~ Esse é o arquivo de modelo do módulo de modificação global. Você deve renomeá-lo para index.d.ts
44+
*~ e colocá-lo em uma pasta com o mesmo nome do módulo.
45+
*~ Por exemplo, se você estiver escrevendo um arquivo para "super-greeter", este
46+
*~ arquivo deve estar em 'super-greeter/index.d.ts'
47+
*/
48+
49+
/*~ Observação: Se seu módulo de modificação global é passível de ser chamado ou instanciado, você
50+
*~ precisará combinar os padrões daqui com aqueles arquivos de modelo na classe ou função de módulo
51+
*/
52+
53+
declare global {
54+
/*~ Aqui, declare coisas que vão no namespace global, ou aumente
55+
*~ as declarações existentes no namespace global
56+
*/
57+
interface String {
58+
fancyFormat(opts: StringFormatOptions): string;
59+
}
60+
}
61+
62+
/*~ Se seu módulo exporta tipos ou valores, escreva-os como de costume */
63+
export interface StringFormatOptions {
64+
fancinessLevel: number;
65+
}
66+
67+
/*~ Por exemplo, declarando um método no módulo (além dos seus efeitos colaterais globais) */
68+
export function doSomething(): void;
69+
70+
/*~ Se seu módulo não exportar nada, você precisara dessa linha. Caso contrário, exclua-a */
71+
export {};
72+
```

0 commit comments

Comments
 (0)