Notice
Recent Posts
Recent Comments
Link
초짜코딩의 잡동사니
TS의 변수타입(part III) 본문
📌 TS의 변수타입(part III)
✅ unknown
unknown타입은 모든 값을 나타냅니다. 이것은 any타입과 비슷하지만 any보다 unknown이 더 안전합니다. 이유는 unknown값으로 작업을 수행하는 것은 합법적이지 않기 때문입니다.
let a:unknown
if(typeof a === 'number'){
let b = a + 1
}
if(typeof a === 'string'){
let b = a.toUpperCase()
}
🚫 let b = a + 1
✅ void
void는 값을 반환하지 않는 함수의 반환 값을 나타냅니다. 함수에 return 문이 없거나 해당 return 문에서 명시적 값을 반환하지 않을 때 항상 유추되는 타입입니다.
function hello() {
console.log('x')
}
const a = hello()
🚫 a.toUpperCase()
✅ never
일부 함수는 값을 반환하지 않습니다.이는 함수가 예외를 throw하거나 프로그램 실행을 종료함을 의미합니다.
function hello():never {
throw new Error("zzz")
🚫return "a"
}
function temp(name:string|number):never {
if(typeof name === "string"){
name
} else if(typeof name === "number"){
name
} else {
name
}
}
if 안에서는 string형의 name 반환
else if 안에서는 number형의 name 반환
else 안에서는 never형의 name 반환
⇒ 즉, 제대로 인자가 전달되었다면 else로 올 수 없음
* void와 never는 둘 다 아무것도 반환하지 않는 함수의 반환 유형입니다. 그러나 이들의 차이점은 다음과 같습니다.
void는 함수가 작업을 완료하고 반환할 필요가 없음을 나타냅니다. void 함수는 보통 부작용(side-effect)이 있거나, 매개변수를 변경하거나, 예외를 throw 할 수 있지만, 반환 값은 없습니다. 예를 들어, void 함수는 콘솔에 메시지를 출력하거나 파일에 쓰기 등의 일을 수행할 수 있습니다.
never는 함수가 반환하지 않는다는 것을 나타냅니다. never 함수는 보통 런타임 오류를 throw하거나, 무한루프에 빠지는 등의 예외적인 상황에서 사용됩니다. 이러한 함수는 호출자가 도달할 수 없는 코드를 포함하기 때문에 반환 유형이 never로 지정됩니다. never는 반환 값이 없는 것이 아니라, 함수가 반환되지 않는다는 것을 나타내는 반환 유형입니다.
요약하자면, void는 함수가 작업을 수행하고 반환하지만 반환 값이 없는 경우 사용되고, never는 함수가 반환되지 않는 경우 사용됩니다.
'TypeScript' 카테고리의 다른 글
TS의 Generics (0) | 2024.07.03 |
---|---|
TS의 변수타입(part II) (0) | 2024.07.01 |
TS의 변수타입 (0) | 2024.06.28 |