Boa tarde!
Marquei o tópico anterior como resolvido cedo demais.
Vamos lá, nele o colega Estudante me sugeriu o seguinte código:
enum PersonNature {
FISICA = 'F',
JURIDICA = 'J'
}
class Person {
name: string
personNature: PersonNature
constructor(name: string, personNature: string) {
this.name = name;
this.personNature = PersonNature.from(personNature);
}
getPersonNatureName(): string {
return PersonNature[this.personNature];
}
}
namespace PersonNature {
export function from(value: string): PersonNature {
switch (value) {
case 'F':
return PersonNature.FISICA;
case 'J':
return PersonNature.JURIDICA;
default:
throw new Error('Tipo de pessoa inválido');
}
}
}
const pessoa = new Person('João', 'F');
console.log(pessoa.getPersonNatureName()); // Isso vai retornar 'FISICA'
Infelizmente ele não funcionou para mim. Fica apresentando o erro abaixo na linha return PersonNature[this.personNature];
:
Element implicitly has an 'any' type because expression of type 'PersonNature' can't be used to index type 'typeof PersonNature'.
Property '[PersonNature.FISICA]' does not exist on type 'typeof PersonNature'.
Alguém poderia me ajudar?