TypeScript

keyof 연산자

눙엉 2021. 12. 23. 09:13

keyof 연산자를 object에 사용하면 object가 가지고 있는 모든 key값을 union type으로 합쳐서 내보내 준다.

object에 들어있는 key를 사용해서 새로운 타입을 만들 때 사용하는 연산자이다.

 

interface Car {
	name: string;
    price: number;
}

type CarKeys = keyof Car;
let carPrice :CarKeys = 'price';
let carName :Carkeys = 'name';
let carName2 :Carkeys = 'namename'; // 'price' or 'name' 만 가능하다.

 

keyof 연산자를 사용하면 Car 객체 안의 key 값이 Type이 된다.

그래서 'price' 또는 'name' 은 사용되지만 'namename' 같은 값은 사용할 수가 없다.

 

interface Macbook {
	[key :string]: number;
}

type MacbookKeys = keyof Macbook;
let price :MacbookKeys = '10000000';
let model :MacbookKeys = 'MacbookPro';

[key :string]으로 사용하면 키값에 모든 문자 key를 사용할 수 있다.

keyof Macbook을 하게 되면 string타입이 된다. (사실 string | number 가 된다. 왜냐하면 숫자를 넣어도 문자로 변하기 때문이다.)

[key: number]를 하면 숫자만 사용할 수 있어서 keyof Macbook을 하게되면 number 타입이 된다. 

'TypeScript' 카테고리의 다른 글

[TS] TypeScript 구조적 타이핑, 덕 타이핑  (0) 2022.12.30
[TS] TypeScript 객체 프로퍼티 접근 (Index Signature)  (0) 2022.09.23
declare 이란?  (0) 2021.12.15
tsc -w  (0) 2021.11.23
TypeScript 문법  (0) 2021.11.06