Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Duvida sobre check em interfaces no TypeScript #986

Closed
sbvorpagel opened this issue Mar 13, 2018 · 2 comments
Closed

Duvida sobre check em interfaces no TypeScript #986

sbvorpagel opened this issue Mar 13, 2018 · 2 comments

Comments

@sbvorpagel
Copy link

Pessoal, comecei a estudar o TypeScript, e notei que ele não detecta erro no código abaixo:

interface Customer {
    readonly id: string;
    readonly name: string;
}

class Order {
    private _customer: Customer;

    constructor(customer: Customer) {
        this._customer = customer;
    }
}
const customer = { id: 'teste', name: 'a' };
delete customer.name;
const order = new Order(customer);
console.log(order);

Nesse caso, ele não deveria acusar erro? Visto que customer não possuí mais o atributo name?

@fabiorocha
Copy link

fabiorocha commented Mar 13, 2018

Opa @sbvorpagel , tudo bom?

Muito bom que você não só está estudando, como também está questionando o porquê das coisas.

Duas coisas estão relacionadas a sua pergunta:

  1. O que você está esperando que aconteça atualmente é um bug na linguagem, que está sendo trackeado nessa issue aqui:

    deleting a prop doesn't invalidate the interface microsoft/TypeScript#13783

  2. Como no seu caso as properties são readonly, você pode pegar o erro em tempo de compilação se você tipificar o objeto que você está construindo:

    image

    Que foi um caso introduzido com essa issue aqui:

    Deleting from readonly dictionary does not give a type error microsoft/TypeScript#11480

    Nesse caso você verá o erro abaixo. Porém, esse erro é mais pelo fato de você estar deletando algo readonly. O seu bug acima propriamente dito, infelizmente, ainda está aberto. 😪

    image

No mais, ótima reflexão e se achar mais problemas assim, abre umas issues lá no repo do TypeScript que o time do TS vai ficar feliz em responder. Abs!

@sbvorpagel
Copy link
Author

@fabiorocha Muito obrigado, foi bem esclarecedor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants