diff --git a/.DS_Store b/.DS_Store index ea98df94..68ab2b04 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/TypeScript/app/gilded-rose.ts b/TypeScript/app/gilded-rose.ts index 31bf931f..c6f963c6 100644 --- a/TypeScript/app/gilded-rose.ts +++ b/TypeScript/app/gilded-rose.ts @@ -1,19 +1,22 @@ -import { AgedBrie, Passes, Surfras } from "./itemClasses"; -type ItemClasses = AgedBrie[] | Surfras[] | Passes[]; +import { Item } from "./itemClasses"; + +interface ItemForSale extends Item { + handleQuality: () => void; + handleSellIn: () => void; +} export class GildedRose { - items: ItemClasses; - constructor(items = [] as ItemClasses) { + items: ItemForSale[]; + constructor(items = [] as ItemForSale[]) { this.items = items; } updateQuality() { - const updatedItems = this.items.map((item) => { + return this.items.map((item) => { item.handleSellIn(); item.handleQuality(); return item; }); - return updatedItems as ItemClasses; } } diff --git a/TypeScript/app/itemClasses.ts b/TypeScript/app/itemClasses.ts index 8a1b6aac..2f7647b5 100644 --- a/TypeScript/app/itemClasses.ts +++ b/TypeScript/app/itemClasses.ts @@ -1,9 +1,15 @@ -export class Item { - name: string; - sellIn: number; - quality: number; +export type ItemName = + | "Aged Brie" + | "Backstage passes to a TAFKAL80ETC concert" + | "Conjured Mana Cake" + | "Sulfuras, Hand of Ragnaros"; - constructor(name, sellIn, quality) { +export class Item { + name; + sellIn; + quality; + + constructor(name: ItemName, sellIn: number, quality: number) { this.name = name; this.sellIn = sellIn; this.quality = quality; diff --git a/sql/structure/.DS_Store b/sql/structure/.DS_Store new file mode 100644 index 00000000..03d9eb65 Binary files /dev/null and b/sql/structure/.DS_Store differ