TypeScript, sendo uma extensão do JavaScript, introduz alguns operadores e recursos que não estão presentes no JavaScript puro. Aqui estão alguns dos operadores e construções de tipos exclusivos do TypeScript, com exemplos.
Operador de Acesso Seguro (Safe Navigation Operator) ?.
Este operador permite ler o valor de uma propriedade localizada em um objeto profundo sem ter que verificar explicitamente cada referência intermediária.
let x = foo?.bar; // Acessa foo.bar, mas não lança um erro se foo é null ou undefined
Operador de Afirmação de Tipo
Em TypeScript, você pode usar a afirmação de tipo para especificar explicitamente que uma variável ou expressão tem um tipo específico.
let myCanvas = document.getElementById("myCanvas") as HTMLCanvasElement;
Tipo 'never'
O tipo never
é usado para funções que nunca retornam um valor (por exemplo, que sempre lançam um erro).
function error(message: string): never {
throw new Error(message);
}
Tipos de Tuplas
TypeScript permite que você especifique um array com um número fixo de elementos cujos tipos são conhecidos, mas não necessariamente o mesmo.
let x: [string, number];
x = ["hello", 10]; // OK
Modificador de Acesso private
e protected
TypeScript introduz modificadores de acesso private
e protected
para propriedades de classe.
class Animal {
private name: string;
constructor(theName: string) {
this.name = theName;
}
}
Decoradores
Os decoradores são uma forma de adicionar anotações e metaprogramação sintática às declarações de classe e membros.
function sealed(constructor: Function) {
// ... código do decorador ...
}
@sealed
class Greeter {
// ... código da classe ...
}
Tipos Condicionais
Os tipos condicionais permitem expressar operações não uniformes em tipos.
type Check<T> = T extends string ? "String" : "Not a String";
Mapped Types
Os tipos mapeados permitem criar novos tipos com base em transformações de propriedades de um tipo existente.
type ReadOnly<T> = { readonly [P in keyof T]: T[P]; };
Esses são apenas alguns dos recursos e operadores que o TypeScript oferece além do JavaScript. Eles permitem uma programação mais robusta e tipos mais expressivos, facilitando a manutenção e o desenvolvimento de aplicativos complexos.