와우.. 마지막 일기가 정확히 1주일 전이었다니.. 방송대 과제도 부랴부랴하고 몸도 아프고 해서인지 시간이 이렇게 빨리가는줄은 몰랐다..
현재 넷플릭스 클로닝을 다 마치고 TypeScript에 대해서 베이직하게 배우고있다. 사실 넷플릭스는 클로닝은 TypeScript를 이용한 프로젝트긴 했지만 '느낌'상으로만 알고 넘어간부분이라. 정확하게 TypeScript만을 콕 찝어서 배우고싶었다.
JavaScript는 기본적으로 mutability(변경가능성)이 기본인 언어다.
이는 컴파일단계에서는 편하게 개발할수있겠지만 그 편안함이 런타임단계에서 스노우볼이 굴러 뻥!하고 터질수있다.
const str = 'test';
const mutable = str + true //'testtrue'
이렇게 원래는 값은 데이터타입만 연산이 가능해야하는데 JavaScript는 개발자를 너무 좋아해서 오류메세지를 내고싶지 않아한다 => 그래서 string+boolean인데 string이 되버린것;
이러한 문제는 나도 많이느꼇다. 일단 아무문제없이 동작은되니까 정상적으로 코드를 잘 짯다고 생각했는데 런타임단계에서 테스트해보면 데이터타입이 꼬인경우가 종종있었다.
TypeScript는 타입지정을통해 이러한 문제를 코드를 짜는시점에서 잡아주니까 좋았다.
변수선언시에는 타입지정이 필수는 아니었다. TypeScript가 자체적으로 타입추론을통해 지정해주니까.
let strArray = ['a','b','c']
strArray[0] = 1
// error 타입추론을 통해 string[] 지정됬고, number가 들어오려하니 컴파일단계에서 error처리를 함
const [string,number,boolean] = ['KIM',13,true]
타입이 믹스된느낌. 하지만 순서는 중요하다
function Void():void{
console.log('vooooid')
}
return문이 없거나 명시적으로 return하는 값이 없을때 붙는 타입. 하지만 TypeScript가 타입추론을 통해 void타입명시를 안해줘도 알아서 해준다.
다음은 TypeScript 함수로 글써야지..