Duplicação na Compilação de TS para JS (es2017)
rnvdeveloper opened this issue · comments
Olá Gláucia! Espero que esteja tudo bem por ai.
Eu procurei informação a respeito dessas dúvidas, mas não consegui localizar nada que falasse a respeito. Não sei dizer se tem algum problema com meu compilador ou se esse seria um comportamento esperado.
Você poderia me ajudar a entender ou indicar alguma leitura que fale a respeito?
A mensagem de erro que você está vendo provavelmente se deve ao fato de você não ter definido a propriedade firstName na classe Person2. Embora você tenha passado firstName como um parâmetro para o construtor, na verdade você não definiu firstName como uma propriedade na classe.
Para corrigir esse erro, você deve adicionar uma propriedade firstName à classe Person2, assim:
class Person2 {
constructor(private firstName: string, private lastName: string) {}
}
Essa maneira de definir propriedades na lista de parâmetros do construtor usando a palavra-chave private é uma sintaxe abreviada fornecida pelo TypeScript.
Quando você define um parâmetro de construtor com a palavra-chave private, o TypeScript gera automaticamente uma propriedade privada com o mesmo nome e tipo do parâmetro. A propriedade privada é então inicializada com o valor passado para o construtor.
No caso da classe Person2, os parâmetros do construtor firstName
e lastName
são definidos como propriedades privadas, o que significa que não podem ser acessados ou modificados de fora da classe.
Isso é útil para encapsular o estado interno do objeto e impedir a modificação não intencional de suas propriedades. Ele também permite que a classe forneça métodos para acessar e modificar suas propriedades de maneira controlada, como métodos getter e setter.
Ao usar essa sintaxe abreviada, você pode economizar tempo e reduzir o código clichê ao definir classes no TypeScript.
Esse artigo pode te ajudar mais na sua pesquisa: LINK