[TS]4. Symbol,unknown 타입

신연우·2023년 3월 13일
0

TS

목록 보기
5/12

Symbol 타입

  • ES6에 새롭게 추가된, number나 string과 같은 기본 데이터 타입(원시 타입)
  • 변경 불가능한 유일한 값
let value:number = 10;

let sym1 = Symbol();
let sym2 = Symbol("hello");
let sym3 = Symbol("hello");

console.log(sym2 === sym3)  /// false  
console.log(typeof sym2)    /// "symbol"

obj의 key값으로도 symbol을 줄 수 있음

let sym = Symbol();
const obj = {name: "syw", [sym]:"value"};
console.log(obj[sym]) // "value"

unknown 타입

  • 단어 그대로, 타입이 뭔지 알 수 없는 타입
  • 어떤값이든 들어올 수 있으니 엄격하게 검사해서 사용
  • any 타입과 유사하지만 훨씬 안전
  • 타입을 특정해주기 전까지는 무언가를 수행하려고 할 때 에러를 내 준다.
function f1(a:any){
  a.toUpperCase();
}
//  typeerror 가 안남. any는 사용을 지양하자

function f2(a:unknown){
    a.toUpperCase()
}
//  typeerror가 남

이럴땐 if 문을 사용하여 해결 가능.

function f2(a:unknown){
if(typeof a === "string"){
    a.toUpperCase()}
}else{
return "문자열이 아닙니다."}
// 정상 작동
profile
야금야금 똑똑해지자

0개의 댓글