typescript

21.12.22 형식의 인수는 'string' 형식의 매개 변수에 할당될 수 없습니다.ts(2345)

슈팅스타제제 2021. 12. 23. 09:48

 

내가 객체 타입의 데이터를 매개변수로 넘겨줄 때 그 매개변수의 타입을 string으로 해놓고 넘겨주고 있어서 발생한 오류였다. 

 

타입을 일일이 지정해서  넘겨주는 데이터와 전달하는 파라미터 사이의 데이터 타입이 일치해야 한다. 

 

예를 들어서, 요로코롬 쓰고 있었다면 

const data = {
    name: 'jemerald', 
    age: 26, 
    job: 'developer',
}

const onSubmit = (item: string) => {
	console.log('item', item)
}

1. 데이터 자체를 바꾸겠다 (좀 비추)

// 타입만 string으로 취급하는 객체
const data = "{ name: 'jemerald', age: 26, job: 'developer'}"

const onSubmit = (item: string) => {
	// 그럼 여기서 이렇게 변환해주면 되지 않을까
    const data = JSON.parse(item)
	console.log('name', data.name)
}

2. 파라미터 타입을 바꾸겠다.

// 타입만 string으로 취급하는 객체
interface Item: {
    name: string
    age: number
    job: string
}

const data = {
    name: 'jemerald', 
    age: 26, 
    job: 'developer',
}

const onSubmit = (item: Item) => {
	console.log('name', item.name)
}

 

타입스크립트는 거짓말하지 않는다..!!