Olá professor, tudo bem? Professor, estou tentando criar uma classe que conterá arrays, como coleções para objetos que defini como interfaces. Na sequência a interface.
export interface Peca {
nome: string;
valor: number;
}
Agora a classe que gostaria que fosse a representação de um repositório.
import { Peca } from "../models/peca";
export class Repository {
private static pecas: Array<Peca> = new Array(); // tentei como Peca[] também
public static returnRepository<T>(repositorio: string) : Array<T> { // tentei como T[] também.
if (repositorio.toLowerCase() === 'peca')
return this.pecas; // Aqui ocorre o erro
}
}
Erro: O tipo 'Peca[]' não pode ser atribuído ao tipo 'T[]'. O tipo 'Peca' não pode ser atribuído ao tipo 'T'.
O senhor poderia me ajudar nisso?
Pesquisei e encontrei várias soluções, mas praticamente todas assim:
function loggingIdentity<T>(arg: T[]): T[] {
console.log(arg.length);
return arg;
}
Mas eu não quero mandar o array para função, quero que a função retorne a coleção, de acordo ao argumento recebido. Minha ideia é um factory.
Obrigado pela atenção professor