let movieTitle: string = "Amadeus";
변수명 옆에 타입을 정해주는 것을 타입 애너테이션이라고 한다
let numCatLives: number = 9;
numCatLives += 1;
numCatLives = "zero"; // 에러
let gameOver : boolean = false;
gameOver = true;
gameOver = "true"; // 에러
변수에 설정한 애너테이션을 지키지 않는 경우, 타입스크립트는 에러를 알려준다
let tvShow = "Olive Kitteridge"; // string
tvShow = "The Other Two";
tvShow = false; // 에러
let isFunny = false; // boolean
isFunny = true;
isFunny = "Asd"; // 에러
굳이 애너테이션을 설정하지 않아도 타입스크립트는 변수의 타입을 알고 있다
let thing: any = "hello";
thing = 1;
thing = false;
thing()
thing.toUpperCase();
애너테이션을 any
로 설정하면 어떤 타입이든지 다 사용할 수 있다
const movies = ["Arrival", "The Thing", "Aliens", "Amadeus"]
let foundMovie;
for(let movie of movies) {
if(movie === "Amadeus") {
foundMovie = "Amadeus";
}
}
foundMovie();
foundMovie = 1;
foundMovie.asdfef();
애너테이션을 설정하지 않으면 타입스크립트는 기본적으로 any
로 추론한다
어떤 타입이든 에러를 발생하지 않고 사용할 수 있기 때문에 실행 시 오류가 발생한다
실행하기 전에 타입스크립트가 막지 못하기 때문에 웬만하면 사용하지 않는다