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"
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 "문자열이 아닙니다."} // 정상 작동