상세 컨텐츠

본문 제목

[JS, TS] javascript, typescript에서 key/value 객체에 값 추가하기

개발/ETC

by 대충고양이짤 2022. 2. 18. 10:10

본문

javascript에서 json형태의 객체에 값을 추가하는 것은 간단하다


let testJson = {
    name: "Gildong Hong",
    age: 20,
    country: "KR"
}

console.log(JSON.stringify(testJson));

///스킬을 추가 한다 {"skill": "east west flashing"}
testJson.skill = "east west flashing";
console.log(JSON.stringify(testJson));

정상적으로 추가된다


{"name":"Gildong Hong","age":20,"country":"KR"}
{"name":"Gildong Hong","age":20,"country":"KR","skill":"east west flashing"}

typescript에서 똑같이 해보려고 하니 에러가 발생한다

typescript는 정적 타입의 컴파일 언어라 컴파일 시 미리 타입을 확인하기 때문에 testJson에 없는 값을 추가할 수 없다(컴파일 에러 발생).
이때 testJson에 any 타입을 추가하여 컴파일 시 타입 검사를 하지 않고 지나가도록 해야 한다.


let testJson: any = { //type을 any로 설정하여 모든 종류의 값을 허용함
    name: "Gildong Hong",
    age: 20,
    country: "KR"
}

console.log(JSON.stringify(testJson));

///스킬을 추가 한다 {"skill": "east west flashing"}
testJson.skill = "east west flashing";
console.log(JSON.stringify(testJson));

정상적으로 추가된다


{"name":"Gildong Hong","age":20,"country":"KR"}
{"name":"Gildong Hong","age":20,"country":"KR","skill":"east west flashing"}

단, tsconfig.json에 any 타입을 사용할 수 있게 하는 옵션값을 설정해야 한다.

//tsconfig.json
{
  "compilerOptions": {
    "noImplicitAny": false
  }
}

관련글 더보기

댓글 영역