SlideShare uma empresa Scribd logo
Typescript 4.1
Hello!
Jonathan Sedrez
Frontend | ilegra
2
3
4.1
4
O que é
Typescript?
5
Javascript
linguagem de código aberto que
se baseia em JavaScript,
adicionando definições de tipo
estático.
Type-checking
Todo código JavaScript válido
também é código TypeScript.
Você pode obter erros de
verificação de tipo.
Gradual
Você pode ter uma aplicação
com Javascript e Typescript
simultaneamente
6
What's new?
7
Template Literal Types
Template literal types nos permitem modelar funções e APIs que esperam um conjunto de strings específicas.
type World = "world";
type Greeting = `hello ${World}`;
8
Agora é possível mapear objetos e especificar o type para cada key de um objeto.
TypeScript 4.1 permite que você mapeie novamente as chaves em tipos mapeados com uma nova cláusula as.
type Options = {
[K in "noImplicitAny" | "strictNullChecks" | "strictFunctionTypes"]?: boolean
};
// same as
// type Options = {
// noImplicitAny?: boolean,
// strictNullChecks?: boolean,
// strictFunctionTypes?: boolean
// };
Key Remapping in Mapped Types
9
Conditional types agora pode referenciar imediatamente ele mesmos e com seus types, deixando mais fácil a
criar aliases recursivos.
Por exemplo, se você quiser escrever um type pegando os elementos de um array, você pode fazer o
seguinte:
type ElementType<T> = T extends ReadonlyArray<infer U> ? ElementType<U> : T;
Function deepFlatten<T extends readonly unknown[]>(x: T): ElementType<T>[] {
Throw “not implemented”;
}
//Todos esses retornarão o type number[]:
deepDlatten([1, 2, 3]);
deepDlatten([[1], [2, 3]]);
Recursive Conditional Types
10
Nesse novo modo, todo acesso a um objeto (como foo.bar) ou acesso indexado (como foo ["bar"]) é
considerado potencialmente undefined.
Se precisar acessar essa propriedade, você terá que verificar primeiro a existência dela ou usar um operador
de asserção não nulo
// Verifica se a propriedade existe primeiro
if (opts.yadda) {
console.log(opts.yadda.toString());
}
// Basicamente esta dizendo: “Confia em mim, eu sei o que estou fazendo”
// quando se utiliza o operador “!”.
opts.yadda!.toString();
Checked Indexed Accesses
Breaking Changes
11
- Mudanças no lib.d.ts
- abstract nao pode mais ser marcado como async
- any/unknown São propagados em posições falsas
- resolve Parameters não são mais opcionais em Promises
Obrigado!
Duvidas?
12

Mais conteúdo relacionado

PDF
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
PDF
T17_LM3: Erros/Debug (2013-2014)
PDF
Curso de OO com C# - Parte 04 - Estruturas de controle e Strings
PDF
Curso de OO com C# - Parte 06 - ADO.NET
PDF
Minicurso javascript
PDF
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
PDF
Curso de OO com C# - Parte 02 - Introdução ao C#
PDF
Guia de Referência do PHP - Variáveis
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
Curso de OO com C# - Parte 04 - Estruturas de controle e Strings
Curso de OO com C# - Parte 06 - ADO.NET
Minicurso javascript
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 02 - Introdução ao C#
Guia de Referência do PHP - Variáveis

Mais procurados (20)

PDF
(A15) LabMM3 - JavaScript - Objectos: String, Date e Math
PDF
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código
PDF
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
PDF
Javascript Recuperando Dados De Formularios
PDF
Apresentação 1 o que foi aprendido
PDF
STRUCTured Type Codes
PDF
Java orientação a objetos (variaveis de instancia e metodos)
PPT
Spring Capitulo 06
PPTX
JavaScript - #Aula04 parte 06 - CamelCase, getElementByID, isNaN
PDF
Apostila de Introdução a POO com C#
KEY
Introdução a Python
PPTX
JavaScript "for dummies"
PDF
Resumo tipo primitivo_java
ODP
2 controle-de-fluxo
PDF
Desenvolvimento em .Net - Excepções
PPTX
Linguagem de Programação - aula 04
PPTX
Curso Básico de Java - Aula 2
PDF
(A15) LabMM3 - JavaScript - Objectos: String, Date e Math
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
Javascript Recuperando Dados De Formularios
Apresentação 1 o que foi aprendido
STRUCTured Type Codes
Java orientação a objetos (variaveis de instancia e metodos)
Spring Capitulo 06
JavaScript - #Aula04 parte 06 - CamelCase, getElementByID, isNaN
Apostila de Introdução a POO com C#
Introdução a Python
JavaScript "for dummies"
Resumo tipo primitivo_java
2 controle-de-fluxo
Desenvolvimento em .Net - Excepções
Linguagem de Programação - aula 04
Curso Básico de Java - Aula 2
Anúncio

Semelhante a Typescript 4.1 (20)

PPTX
TypeScript - Campus party 2013
PPTX
Hypescript Typescript!! Uma breve introdução
PDF
Codelab: TypeScript
PDF
Palestra: Introdução à TypeScript & Features Ts 2.x
PPTX
Apresentação Introdução Typescript - .Net Caxias do Sul
PPT
aula de introdução a ecamscript e typescript
PDF
Estruturas de dados e algoritmos com JavaScript 2nd Edition Groner Loiane
PPTX
TypeScript em Aplicações Modernas
PPTX
TDC2016SP - TypeScript em aplicações modernas
PPTX
[JS EXPERIENCE 2018] Nada é por acaso, nem os tipos no JS - Diego Pinho, Code...
PDF
Javascript The good, bad and ugly parts
PDF
One Language to Rule Them All: TypeScript
PDF
Typescript: the Fun Parts (BrazilJS 2017)
PDF
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
PPTX
Javascript para CSharpers 1 - Comparando
PPTX
TypeScript no Back-end e no Front-end
PDF
Objetos Pythonicos - compacto
PPT
tipos.ppt
PPTX
Desvendando a linguagem JavaScript
PPTX
Tdc 2020 Floripa
TypeScript - Campus party 2013
Hypescript Typescript!! Uma breve introdução
Codelab: TypeScript
Palestra: Introdução à TypeScript & Features Ts 2.x
Apresentação Introdução Typescript - .Net Caxias do Sul
aula de introdução a ecamscript e typescript
Estruturas de dados e algoritmos com JavaScript 2nd Edition Groner Loiane
TypeScript em Aplicações Modernas
TDC2016SP - TypeScript em aplicações modernas
[JS EXPERIENCE 2018] Nada é por acaso, nem os tipos no JS - Diego Pinho, Code...
Javascript The good, bad and ugly parts
One Language to Rule Them All: TypeScript
Typescript: the Fun Parts (BrazilJS 2017)
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
Javascript para CSharpers 1 - Comparando
TypeScript no Back-end e no Front-end
Objetos Pythonicos - compacto
tipos.ppt
Desvendando a linguagem JavaScript
Tdc 2020 Floripa
Anúncio

Último (7)

PDF
Dos requisitos ao código: como criar código rastreável em PHP
PDF
apresentacao introducao computacao ead.pdf
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
PPTX
Mapeamento de Objeto para Tabela Relacional
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PPTX
Curso de Windows 11 resumido na prática.pptx
PDF
Evolução em código: algoritmos genéticos com PHP
Dos requisitos ao código: como criar código rastreável em PHP
apresentacao introducao computacao ead.pdf
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
Mapeamento de Objeto para Tabela Relacional
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Curso de Windows 11 resumido na prática.pptx
Evolução em código: algoritmos genéticos com PHP

Typescript 4.1

  • 5. 5 Javascript linguagem de código aberto que se baseia em JavaScript, adicionando definições de tipo estático. Type-checking Todo código JavaScript válido também é código TypeScript. Você pode obter erros de verificação de tipo. Gradual Você pode ter uma aplicação com Javascript e Typescript simultaneamente
  • 7. 7 Template Literal Types Template literal types nos permitem modelar funções e APIs que esperam um conjunto de strings específicas. type World = "world"; type Greeting = `hello ${World}`;
  • 8. 8 Agora é possível mapear objetos e especificar o type para cada key de um objeto. TypeScript 4.1 permite que você mapeie novamente as chaves em tipos mapeados com uma nova cláusula as. type Options = { [K in "noImplicitAny" | "strictNullChecks" | "strictFunctionTypes"]?: boolean }; // same as // type Options = { // noImplicitAny?: boolean, // strictNullChecks?: boolean, // strictFunctionTypes?: boolean // }; Key Remapping in Mapped Types
  • 9. 9 Conditional types agora pode referenciar imediatamente ele mesmos e com seus types, deixando mais fácil a criar aliases recursivos. Por exemplo, se você quiser escrever um type pegando os elementos de um array, você pode fazer o seguinte: type ElementType<T> = T extends ReadonlyArray<infer U> ? ElementType<U> : T; Function deepFlatten<T extends readonly unknown[]>(x: T): ElementType<T>[] { Throw “not implemented”; } //Todos esses retornarão o type number[]: deepDlatten([1, 2, 3]); deepDlatten([[1], [2, 3]]); Recursive Conditional Types
  • 10. 10 Nesse novo modo, todo acesso a um objeto (como foo.bar) ou acesso indexado (como foo ["bar"]) é considerado potencialmente undefined. Se precisar acessar essa propriedade, você terá que verificar primeiro a existência dela ou usar um operador de asserção não nulo // Verifica se a propriedade existe primeiro if (opts.yadda) { console.log(opts.yadda.toString()); } // Basicamente esta dizendo: “Confia em mim, eu sei o que estou fazendo” // quando se utiliza o operador “!”. opts.yadda!.toString(); Checked Indexed Accesses
  • 11. Breaking Changes 11 - Mudanças no lib.d.ts - abstract nao pode mais ser marcado como async - any/unknown São propagados em posições falsas - resolve Parameters não são mais opcionais em Promises