230119_TIL

·2023년 1월 20일

오류 해결 참고 블로그
jsx 에서 tsx로 변환하는데 오류가 많았었음.

TS

타입 애너테이션이 필요하거나 유용한 경우

  • 초기화와 별도로 변수를 선언하는 경우

any

변수 타입을 애너테이션 처리하지 않고, 값을 초기설정하지 않으면, 해당 변수의 타입은 "any"다.

const moives = ["변산","기생충","차이나타운"];
let foundMovie; // 변수에 값을 넣지 않고 선언만 하면, TS에서 any type으로 추론함.
let foundMovie:string // any로 추론되지 않게 직접 type 애너테이션 해주기.

for (let movie of movies) {
	if (movie === "기생충") {
      	foundMovie = "기생충"; // any type으로 TS가 추론한다.
        }
}

void

  • return값이 없는 함수의 type이다. (아무것도 return하지 않음)
  • 변수가 아닌 함수에서 주로 사용한다. (드물게)
  • return하는 값은 없지만, 엄밀히 값에 속한다.
  • void 함수. undefined 상태로 반환된다.

never

  • 드물게 사용됨.
  • TS에 있지만, JS엔 없음.
  • never은 함수가 아무것도 반환하면 안된다는 것을 나타내기 위해 쓰인다.
  • 함수의 반환 타입으로 쓰이는 경우와, 절대 반환되지 않아야 할 함수를 애너테이션 처리할 때 쓰인다.
  • 이 함수가 절대 return할 기회를 가지면 안될 때 쓰임.
    (return하면 함수가 끝나버리니까, 그래선 안될 함수에 쓰이려나 ?)

void와 차이점?

  • void는 아무것도 반환하지 않은 경우 함수의 백그라운드에서 undefined 상태로 반환된다.
  • never type 함수는 일반적으로 예외를 발생시키는 함수가 될 것이다. 예를 들어 아무것도 반환할 일이 없거나, 어떤 루프에서 연속적으로 실행되는 함수일 것임.
profile
- 배움에는 끝이 없다.

0개의 댓글