Cursos / Redes de Computadores / Programação Orientada a Objetos / Aula

arrow_back Aula 09 - Classes Abstratas e Interfaces

Exemplo prático: Interface

Exemplo

interface Pessoa {
    nome: string;
    anoNascimento?: number;
    imprimirNome?: () => void;
}

interface Pessoa2 {
    sobrenome: string;
}

let p1: Pessoa = {
    nome: 'Zezinho',
    anoNascimento: 2000,
    imprimirNome(): void {
        console.log(this.nome)
    }
}

let pessoas: Pessoa[] = [
    { nome: 'João', anoNascimento: 2000 },
    { nome: 'Maria', anoNascimento: 1997 },
    { nome: 'José', anoNascimento: 2003 },
    { nome: 'Luluzinha', anoNascimento: 2002 },
    { nome: 'Bolinha' },
    p1
]

function listaNomes(p: Pessoa[]) {
    p.forEach(prop => console.log(prop.nome))
}

//listaNomes(pessoas);
if (p1.imprimirNome) {
    p1.imprimirNome();
}

function calculaIdade(p: Pessoa) {
    let idade: number;
    if (p.anoNascimento) {
        idade = new Date().getFullYear() - p.anoNascimento;
        console.log(`Idade: ${idade}`);
    }
}

let p2 = { nome: 'Luluzinha', anoNascimento: 2001, endereco: 'Rua X' }

//calculaIdade(p2);
calculaIdade({ nome: 'Luluzinha', anoNascimento: 2001, endereco: 'Rua X' } as Pessoa);

interface Aluno extends Pessoa, Pessoa2 {
    matricula: string;
}

interface Aluno extends Pessoa, Pessoa2 {
    matricula: string;
}

let aluno: Aluno = {
    matricula: '1',
    nome: 'Francisco',
    sobrenome: 'Silva'
}

Versão 5.3 - Todos os Direitos reservados