keyof 연산자 interface Person { age: number; name: string; } type PersonKeys = keyof Person; //"age" | "name" 타입 let a :PersonKeys = 'age'; //가능 let b :PersonKeys = 'ageeee'; //불가능 keyof 연산자를 object 타입에 사용하면 모든 key값을 union타입으로 합친다. => "age" | "name" 타입 interface Person { [key :number]: number; } type PersonKeys = keyof Person; //number 타입 let a :PersonKeys = 10; //가능 let b :PersonKeys = 20; //가능 in..
index signatures interface StringOnly{ [key: string]: string, } let user : StringOnly = { name:'hong', age: '20', location : 'seoul' } 1. object 자료에 어떤 속성들이 들어올지 모르는 경우 2. 타입지정할 속성이 너무 많은 경우 => [ key: 타입 ] : 타입 형태로 작성하면 모든 속성은 해당 타입을 가져야 한다라는 의미. array 형태 interface StringOnly { [key: number]: string, } let obj :StringOnly = { 0 : 'kim' 1 : '20', 2 : 'seoul' } 단순히 key값을 number로 변경하면 obj [0]과 같이 a..
type alias(변수) 사용 전 let 동물 :string | number | undefined; 1. 타입이 복잡하거나 2. 나중에 또 재활용할 타입이라면 type alias(변수) 사용 후 type Animal = string | number | undefined; let 동물 :Animal; 1. type 키워드를 사용. 2. 변수명은 첫 문자 대문자 관례 이렇게 사용하면 타입도 변수처럼 저장하여 사용할 수 있다. 특히 object 타입에 사용한다면? type 사람 = { name : string, age : number, } let teacher :사람 = { name : 'john', age : 20 } object 타입의 경우 선언이 길고 복잡한 편이다. -> 이와 같이 type변수를 사용..