From 12e7f8e82e6e694901f1201b2b55a4d75bf48e22 Mon Sep 17 00:00:00 2001 From: Gayun00 Date: Wed, 18 Oct 2023 23:24:16 +0900 Subject: [PATCH] Refactor: use union type in ItemName type to implement Item interface --- .DS_Store | Bin 10244 -> 10244 bytes TypeScript/app/gilded-rose.ts | 15 +++++++++------ TypeScript/app/itemClasses.ts | 16 +++++++++++----- sql/structure/.DS_Store | Bin 0 -> 6148 bytes 4 files changed, 20 insertions(+), 11 deletions(-) create mode 100644 sql/structure/.DS_Store diff --git a/.DS_Store b/.DS_Store index ea98df94d0379f9f54f56e26e7289fdc061b7cb9..68ab2b040751316ef8ce33c8827fe7f34dd04391 100644 GIT binary patch delta 225 zcmZn(XbG6$&*-%=U^hRb*Jd7pCcgTl^5TM|octsP28QiP1v#0;B?bo97@3$^SlQS) z*g3d4VuLgC%Y#c2OG=BK5{sfiypa6-oFo`KF)1uFwLD%x#5q5&Br!8DwFs;sGbI(M zBqlsFFD1X+DZex?r5LO?7$U*J$-x;fAYScKZDgsVU~FnptD{hDX=I?IU}9`mTg%BI ns;qAv6rY`wo0s1SbQ=&bGD2tuUMLNtx+a&&ZQIPQ@RuC`jJrR| delta 31 ncmZn(XbG6$&*-@^U^hRb=Vl&(Ccep;^7AG(+}_Nt@RuC`wu=kN 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 0000000000000000000000000000000000000000..03d9eb65a502f72354968b11716ca51eeb18f62f GIT binary patch literal 6148 zcmeHK%}&BV5S|5;A~E5hiQYExN+O_WjF$%S=0$7tpay9m*jT%S7C8`--t~oi5ueAI z-Ni`2gBN3DCYk+a=ck+f+U#@zKs1J(DnJPU98|(g0fz-band=-SP!Al&*;Gby5PY% zoXusk<1aEm?`{qHpdf|>zPvww6!-m5`51rm`(Y3#mCC!wWOFO4c_;4_ojdPAjl86t z4C6+7a6_|8r9yvdxBaW2J8G3SPE?e%gQz>u1wp5aDYw@_)KQ~`8b+O1*Lo)46r4h< zv^^eI>-EF3tksStWjQ{oRmyUI?_e@1IGa1W#}}=~@F`L+hEahZpO$rtQ+P#V;pU#b zK@_T}hw*9cw1$xxUI9sN?LgK!P< z$P6$8vkYX-v_$>?^!xk&Y!T0x0cPM|F(7hHui3yY+1@(0IqJ0%^&XXk@=}AJC1~hY gjJec`w@|g9Uy_07T1*Y12ZetGGz~m31Ha0^2aE1aO8@`> literal 0 HcmV?d00001