분류 전체보기

    enum

    function createPromise(x:T,timeout:number){ return new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve(x) },timeout) }) } //타입 안정해주면 알아서 생성 createPromise(1,100).then(v=>console.log(v)) createPromise("1",100).then(v=>console.log(v)) function createTuple2(v:T,v2:U):[T,U]{ return [v,v2] } const t1 = createTuple2("user1",1000)

    class2

    interface Person{ name:string say(message:string):void } interface Programmer{ writeCode(code:string):string } abstract class Korean implements Person { public abstract jumin:number constructor(public name:string){ } say(msg:string){ } abstract loveKimchi():void } //다중인터페이스 가능 class KoreanPro extends Korean implements Programmer{ constructor(public name:string,public jumin:number){ //부모 생성자 호출 필..

    class

    interface User{ } interface Project{ } class Cart{ //접근제한자 사용가능 //protected는 객체안에서랑 상속할때 사용가능 protected user:User //private 객체에서만 사용가능 private store:object constructor(user:User){ this.user = user this.store = {} } put(id:string,product:Project){ this.store[id]=product } get(id){ return this.store[id] } } class PromotionCart extends Cart{ addPromotion(){ this.user } }

    enum

    //중간에 enum 들어가면 순서가 꼬여서 문제가 생길 수 있기 때문에 숫자나 문자열로 정의해주는게 좋다 enum StarbucksGrade{ WELCOME=0, GREEN=1, GOLD="GOLD" } function getDiscount(v:StarbucksGrade):number{ switch(v){ case StarbucksGrade.WELCOME: return 0; case StarbucksGrade.GREEN: return 5; case StarbucksGrade.GOLD: return 10; } }

    function

    //반환값 타입 지정 가능 function add(x:number, y:number):number{ return x+y } const result = add(1,3) //?는 없어도 동작하도록 해줌 //=는 기본값 세팅 function buildUserInfo(name="-", email="-"){ return{name,email} } const user = buildUserInfo() const add2 = (a:number, b:number):number=>a+b interface Storage{ a:string } interface ColdStorage{ b:string } //함수 오버로딩 function store(type:"통조림"):Storage function store(type:"아이스크..