Em JavaScript, você pode declarar variáveis sem definir o tipo. Em TypeScript, você pode (e deve) definir o tipo da variável.
let idade: number = 17;
let nome: string = "João";
let estudante: boolean = true;
Em TypeScript, você também pode definir os tipos dos parâmetros e o tipo de retorno das funções.
function somar(a: number, b: number): number {
return a + b;
}
console.log(somar(2, 3)); // Saída: 5
Interfaces permitem definir a estrutura de um objeto. Isso ajuda a garantir que um objeto tenha todas as propriedades esperadas.
interface Pessoa {
nome: string;
idade: number;
estudante: boolean;
}
const joao: Pessoa = {
nome: "João",
idade: 17,
estudante: true
};
TypeScript permite criar classes, que são como moldes para criar objetos com propriedades e métodos.
class Carro {
marca: string;
ano: number;
constructor(marca: string, ano: number) {
this.marca = marca;
this.ano = ano;
}
detalhes(): string {
return `${this.marca} - ${this.ano}`;
}
}
const meuCarro = new Carro("Toyota", 2020);
console.log(meuCarro.detalhes()); // Saída: Toyota - 2020
Você pode usar public, private e protected para controlar o acesso às propriedades e métodos das classes.
class Animal {
private nome: string;
constructor(nome: string) {
this.nome = nome;
}
public falar(): void {
console.log(`${this.nome} está fazendo um som.`);
}
}
const cachorro = new Animal("Rex");
cachorro.falar(); // Saída: Rex está fazendo um som.
Você pode criar arrays tipados e funções genéricas.
let numeros: number[] = [1, 2, 3, 4];
function inverter<T>(itens: T[]): T[] {
return itens.reverse();
}
let stringsInverted = inverter<string>(["a", "b", "c"]); // Saída: ["c", "b", "a"]