typescript object key 오류

murkgom·2023년 9월 27일

문제 발생

type Person = {
	name: string, 
  	age: number
};

const jack: Person = {
	name: 'Jack', 
    age: 20
};

const key1: string = 'name';
console.log(jack[key1]);		//ts error

const key2 = 'name';
console.log(jack[key2]);		//Jack

원인

key1의 type : string
key2의 type : 'name' 그 자체(string literal)

해결 방안

object의 key에 index signature 설정

type Person = {
  	[key: string]: string | number
	name: string, 
  	age: number
};

const jack: Person = {
	name: 'Jack', 
    age: 20
};

const key1: string = 'name';
console.log(jack[key1]);		//Jack

const key2 = 'name';
console.log(jack[key2]);		//Jack

0개의 댓글