-
3월 21일 TIL : TypeScript-call signature, unknown,void,neverJava Script & Type Script/TIL 2023. 3. 23. 23:24728x90
변수의 타입을 미리 알지 못할때 unknown을 사용할 수 있다.
let a: unknown; if (typeof a ==="number"){ let b = a+1}
void는 값을 반환하지 않는 함수의 반환 값.
함수에 return 문이 없거나 해당 return 문에서 명시적 값을 반환하지 않을 때 항상 유추되는 타입.never는 함수가 절대 return하지 않을 때 발생
예를 들어 함수에서 exception이 발생할 때.아무것도 리턴하지 않고 에러를 발생시키는 함수 . function z (name: string | number){ if (typeof name==="string"){ } else if (typeof name=="number"){ }else { name } }
name은 string혹은 number임. 이미 앞에서 string일 때와 number일 때에 대해 작성되어있어 else에서 name은 never이 됨. 실행되면 안됨.
Call Signature : 함수 위에 마우스를 올렸을 때 보게되는 것.
인자의 반환 타입과 함수의 반환타입을 알려줌.type A= (a: number, b: number) => number;
그리고.. 늘 헷갈렸던 중괄호 이용 참고하면 좋은 글
{}를 사용하면 그 값이 반환값이 함수 내부의 내용으로 처리가 됩니다.
밑의 예시를 보면 이해가 되실거라 생각됩니다.
1. const add:Add = (a,b) => a+b 를 함수로 풀면 다음과 같게 됩니다.
function add(a, b) {
return (a+b)
}
2. const add:Add = (a,b) => {a+b} 를 함수로 풀면 다음과 같게 됩니다.
function add(a, b) {
a+b;
}
즉 애로우함수에서 {}를 사용하게 되면 그 안의 값은 반환이 아니라 함수 내부 내용으로 처리되기에 반환값이 없는 void로 처리됩니다. 이에 따라 위에서 미리 선안한 Add자료형의 반환값은 number라고정해놓은 내용과 충돌하기에 에러가 발생합니다.728x90'Java Script & Type Script > TIL' 카테고리의 다른 글
3월 26일 TIL : ReactQuery 시작하기 (0) 2023.03.26 3월 23일 TIL : TS-Overloading, Polymorphism [타입스크립트야... 내가 명시도안했는데 타입을 유추한거야?] (0) 2023.03.24 3월 18일 TIL : TypeScript 시작 (0) 2023.03.21 3월 18일 TIL : context API, props전송없이 state를 공유하는 방법 (0) 2023.03.18 3월18일 TIL : automatic batch (2) 2023.03.18