Learn TypeScript Help

Using Different Type Arguments

Podemos definir diferentes tipos de argumentos para a classe generica como no exemplo abaixo em que parametrizamos para a classe generica tipos diferentes como no exemplo que temos:

Cada tipo passados como argumento o objeto final é tratado como aquele tipo que do argumento, assim a instãncia de personDatae productData possuem cada um o seu tipo de implementação a acerca do seu tipo passado nos simbolos de <> depois do nome da classe:

let peopleData = new DataCollection<Person>(people); let firstPerson = peopleData.getItem(0); console.log(`First Person: ${firstPerson.name}, ${firstPerson.city}`); let productData = new DataCollection<Product>(products); let firstProduct = productData.getItem(0); console.log(`First Product: ${firstProduct.name}, ${firstProduct.price}`);
import {Person, Product} from "./dataTypes"; let people = [new Person("Bob Smith", "London"), new Person("Dora Peters", "New York")]; let products = [new Product("Running Shoes", 100), new Product("Hat", 25)]; class DataCollection<T> { private items: T[] = []; constructor(initialItems: T[]) { this.items.push(...initialItems); } add(newItem: T) { this.items.push(newItem); } // getNames(): string[] { // return this.items.map(item => item.name); // } getItem(index: number): T { return this.items[index]; } } let peopleData = new DataCollection<Person>(people); let firstPerson = peopleData.getItem(0); console.log(`First Person: ${firstPerson.name}, ${firstPerson.city}`); let productData = new DataCollection<Product>(products); let firstProduct = productData.getItem(0); console.log(`First Product: ${firstProduct.name}, ${firstProduct.price}`);
01 December 2025