Preciso de uma ajuda com alguns exercícios. Por favor, é sobre TypeScript

Estou tentando resolver 3 questões. Mas não estou conseguindo… é Sobre Typescript. Se puderem me ajudar, agradeço desde já.

Vou mostrar em seguida, as questões e o que eu escrevi tentando resolver:

a) Crie uma classe usando o TypeScript para representar um produto de um site de vendas; o produto deve conter pelo menos 5 atributos que o caracterizem, assim como os seus respectivos valores.

b) Crie uma classe Venda que recebe um array de produtos no construtor e tem um método para somar todos os valores dos produtos adicionados no objeto criado a partir da dessa classe.

c) Crie pelo menos dois produtos para inserir no objeto Venda criado e realizar a soma dos valores. Utilize os tipos de dados disponíveis no TypeScript para definir os atributos.

a) Crie uma classe usando o TypeScript para representar um produto de um site de vendas; o produto deve conter pelo menos 5 atributos que o caracterizem, assim como os seus respectivos valores.

class Camiseta {

	cor: string;
	tecido: string;
	tamanho: string;
	sexo: string;
	preco: number;

	constructor(cor:string, tecido: string, tamanho:string, sexto: string, preco: number) {
	
	this.cor = cor;
	this.tecido = tecido;
	this.tamanho = tamanho;
	this.sexo = sexo;
	this.preco = preco;

}

	}

b) Crie uma classe Venda que recebe um array de produtos no construtor e tem um método para somar todos os valores dos produtos adicionados no objeto criado a partir da dessa classe.

class Venda {

	produto1: number;
	produto2: number;
	produto3: number;

constructor(produto1:number, produto2:number, produto3:number) 

	this.produto1 = produto1;
	this.produto2 = produto2;
	this.produto3 = produto3;

	let soma(produto1: number, produto2: number, produto3: number): number { return produto1+produto2+produto3; }

}

c) Crie pelo menos dois produtos para inserir no objeto Venda criado e realizar a soma dos valores. Utilize os tipos de dados disponíveis no TypeScript para definir os atributos.

O seu A está correto para mim. A minha única observação é que vc está escrevendo mais código do que é necessário.

Em TypeScript, se você adicionar algum modificador de acesso como public, private ou protected ou mesmo readonly em um parâmetro do constructor, este parametro automaticamente se torna um atributo da classe.

Então vc pode substituir aquele seu código por isso:

class Camiseta {
  constructor(
    public cor: string,
    public tecido: string,
    public tamanho: string,
    public sexo: string,
    public preco: number
  ) {}
}

Já no B, para declarar um método vc não usar o let como vc fez.

Além disso o exercicio pede para receber um array que pode contar uma quantidade variável de produtos, mas vc fez de um jeito que ele só aceita 3 produtos.

Além disso vc está recebendo um array de number e não de produtos.

Vc deveria fazer algo assim:

class Venda {
  constructor(public produtos: ReadonlyArray<Camiseta>) {}

  pegarTotal() {
    return this.produtos.reduce((soma, produto) => soma + produto.preco, 0);
  }
}

E no C, para testar vc deveria fazer algo assim:

const camiseta1 = new Camiseta('preta', 'algodão', 'M', 'M', 29.99);
const camiseta2 = new Camiseta('verde', 'algodão', 'G', 'F', 19.99);
const venda = new Venda([camiseta1, camiseta2]);
console.log(venda.pegarTotal());

Eu consegui entender um pouco melhor agora. Agradeço pela sua ajuda! Boa tarde amigo!

1 curtida