1234567891011121314151617181920212223242526 |
- interface ShelfItem {
- title: string;
- }
- /* There are lots of shelves in the library, and they can contain different
- types of objects.
- */
- export default class Shelf<T extends ShelfItem> {
- private _items: Array<T> = new Array<T>();
- add(item: T): void {
- this._items.push(item);
- }
- find(title: string): T {
- return this._items.filter(item => item.title === title)[0];
- }
- getFirst(): T {
- return this._items[0];
- }
- printTitles(): void {
- this._items.forEach(item => console.log(item.title));
- }
- }
|