-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #977 from microsoft/asdasadasd
Replace #936
- Loading branch information
Showing
7 changed files
with
175 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
21 changes: 21 additions & 0 deletions
21
packages/playground-examples/copy/pt/4-0/New Checks/Class Constructor Code Flow.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
//// { compiler: { ts: "4.0.0-beta" } } | ||
// | ||
|
||
// No 4.0 nós usamos um fluxo de análise para | ||
// inferir o potencial tipo de propriedades de uma | ||
// classe com base nos valores configurados | ||
// durante sua construção | ||
|
||
class UserAccount { | ||
id; // O tipo é inferido como string | número | ||
constructor(isAdmin: boolean) { | ||
if (isAdmin) { | ||
this.id = "admin"; | ||
} else { | ||
this.id = 0; | ||
} | ||
} | ||
} | ||
|
||
// Nas versões anteriores do TypeScript, `id` | ||
// poderia ser classificado como `any` (qualquer) |
51 changes: 51 additions & 0 deletions
51
packages/playground-examples/copy/pt/4-0/New TS Features/Named Tuples.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
//// { compiler: { ts: "4.0.0-beta" } } | ||
// Tuplas são vetores que sua ordem é importante para a tipagem, | ||
// você pode aprender mais sobre eles no exemplo:tuplas | ||
|
||
// No TypeScript 3.9, o tipo das uma tupla ganha a abilidade de dar | ||
// nome para diferentes partes do array. | ||
|
||
|
||
// Por Exemplo, você usou para escreve uma localização de Latitude, Longintude via tupla: | ||
|
||
type antigaLocalizacao = [number, number] | ||
|
||
const locations: antigaLocalizacao[] = [ | ||
[40.7144, -74.006], | ||
[53.6458, -1.785] | ||
] | ||
|
||
// With 4.0, you can write: | ||
|
||
// Sabendo qual a Latitude e Longitude são ambiguas, então você | ||
// saberá mais como terão que ser chamadas as tuplas LatLong. | ||
|
||
// Com o 4.0 você pode escrever: | ||
|
||
type NovaLocalizacao = [latitude: number, longitude: number] | ||
|
||
const novasLocalizacoes: NovaLocalizacao[] = [ | ||
[52.3702, 4.8952], | ||
[53.3498, -6.2603] | ||
] | ||
|
||
// Os nomes agora mostram ao editor quando você passar o mouse | ||
// por cima, o 0 e 1 no fim da próxima linha: | ||
const primeiraLatitude = novasLocalizacoes[0][0] | ||
const primeiraLogintude = novasLocalizacoes[0][1] | ||
|
||
// Isso poder parecer um pouco decepcionante, o objetivo | ||
// principal é garantir que a informação não será perdida durante | ||
// o trabalho com os sistemas de tipos. Por exemplo, quando extraido | ||
// os parametros de uma função usando o Parâmetro tipo: | ||
|
||
function centroDoMapa(lng: number, lat: number) {} | ||
|
||
// No 4.0, são mantidos os lng e lat | ||
type ParametrosDoCentroDoMapa = Parameters<typeof centroDoMapa> | ||
|
||
// Na versão 3.9, isso teria que ser feito assim | ||
type AntigosParametrosDoCentroDoMapa = [number, number] | ||
|
||
// Fazendo com que uma manipulação de tipos mais complexa | ||
// leve a perdas de informação |
39 changes: 39 additions & 0 deletions
39
packages/playground-examples/copy/pt/4-0/New TS Features/Unknown in Catch.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
//// { compiler: { ts: "4.0.0-beta" } } | ||
|
||
// Como o Javascript permite o `throw` de qualquer valor, | ||
// o TypeScript não permite a declaração um tipo de erro. | ||
|
||
try { | ||
// .. | ||
} catch (e) {} | ||
|
||
// Historicamente, isso significava que o `e` no catch | ||
// poderia ter qualquer valor. Isso permitia liberdade para | ||
// acesso arbitrário de qualquer propriedade. Com o 4.0, nós afrouxamos | ||
// as restrições do tipo configurado no cláusula catch para permitir ambos | ||
// `qualquer`(any) e `desconhecido` (unknown). | ||
|
||
// Mesmo comportamento com: | ||
try { | ||
// .. | ||
} catch (e: any) { | ||
e.stack; | ||
} | ||
|
||
// Comportamento explícito com desconhecido: | ||
|
||
try { | ||
// .. | ||
} catch (e: unknown) { | ||
|
||
// Você não pode usar `e` até que o sistema | ||
// de tipos aprenda o que é. Para mais informação | ||
// a respeito, veja o exemplo: | ||
// example:unknown-and-never | ||
|
||
e.stack; | ||
|
||
if (e instanceof SyntaxError) { | ||
e.stack; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters