Generics là core feature trong các statically-typed languages như TypeScript, cho phép developers define các components, functions, hoặc structures có thể accept và enforce các types được truyền vào khi sử dụng. Điều này tăng cường flexibility, thúc đẩy reusability, và giảm code duplication.
Trong bài hướng dẫn này, chúng ta sẽ khám phá các ví dụ thực tế về TypeScript generics và học cách sử dụng chúng hiệu quả trong functions, types, classes, và interfaces để cải thiện type safety và adaptability trong code của bạn.
Yêu cầu
class MyStorage<T> {private items: T[] = [];addItem(item: T): void {this.items.push(item);}getAllItems(): T[] {return this.items;}getItem(index: number): T | undefined {return this.items[index];}deleteItem(index: number): T | undefined {if (index >= 0 && index < this.items.length) {return this.items.splice(index, 1)[0];}return undefined;}}// Usageconst stringStorage = new MyStorage<string>();stringStorage.addItem("Hello");stringStorage.addItem("World");const numberStorage = new MyStorage<number>();numberStorage.addItem(42);numberStorage.addItem(100);
Về tác giả
NAB, Lead Engineer
Mình là Vũ, hiện là Lead Engineer ở NAB (National Australia Bank). Mình bắt đầu ở mảng Home Lending, giờ đang lead một team làm sản phẩm cho HICAPS, dịch vụ point-of-sale claiming bảo hiểm sức khỏe tư nhân lớn nhất ở Úc. Trước NAB, mình từng làm ở các startup và nhiều team khác với đa dạng stack.
Upskills là nơi mình chia sẻ những kiến thức thực tế từ công việc, để giúp bạn build và ship dự án tốt hơn. Ngoài tutorial, sắp tới sẽ có thêm nhiều nội dung: project showcase, interview prep, và các AI tool, như những resource cho hành trình học của bạn. Mình rất vui được chia sẻ những kiến thức và kinh nghiệm đã học được trong suốt quá trình làm việc, và có thể chia sẻ thêm nhiều điều thú vị cùng nhau khi chúng ta tiếp tục build những thứ hay ho.
Các bài deep-dive về web development thực tế, một đến hai tuần một số, viết bởi engineer thực sự có kinh nghiệm build sản phẩm. Không sáo rỗng, không câu view.
Chúng tôi tôn trọng quyền riêng tư. Hủy đăng ký bất cứ lúc nào.