자바스크립트는 유연한 언어 = 이렇게 저렇게 자유롭게 사용이 가능한 언어자바스크립트는 초기에 브라우저에서 HTML, CSS 의 한계를 극복하고 간단한 프로그래밍 동작 (if else과 같은 절차적인 프로그래밍)을 수행하기 위해 만들어진 언어하지만, 웹 시장이 발전하면서
사용 이유 강타입(정적타입) 약타입(동적타입) 모든 변수를 선언하는 시점부터 해당 변수의 타입을 반드시 지정해야하며, 지정한 타입을 벗어나는 값은 해당 변수에 할당할 수 없도록 만들어짐 ➡ 안전성, 표현력 자바스크립트로 컴파일 컴파일 : A언어 -> B언어로 변환
undefined : 비어져 있는지도 모르는null : 텅텅 비어져 있는무슨 타입이 들어올지 몰라어떤 것이든 다 담을 수 있다아무것도 return 하지 않을 때 사용절대 return 할 수 없다원시타입을 제외한 어떤 타입의 데이터를 다 담을 수 있다 (배열, 객체)
꼭 전달하지 않아도 되는 인자가 있을 경우 '?'를 작성전달하지 않으면 설정해둔 default 값이 들어감인자 개수 제한 없으며 인자들을 배열 형태로 받아올 수 있음
서로 다른 타입을 함께 가질 수 있는 배열 하지만 좋은 느낌이 아니라 대체로 interface, type alias, class를 사용
새로운 타입을 내가 정의할 수 있다타입을 문자열로 정의
OR, 모든 가능한 케이스 중에 발생할 수 있는 딱 하나의 타입만 담고 싶을 때TypeScript에서 활용도가 굉장히 높은 타입Union 타입의 차별이 되는, 이름이 동일한 타입을 둠으로써 간편하게 구분할 수 있음
and &다양한 타입들을 하나로 묶어서 선언할 수 있음
여러가지 관련된 상수 값들을 한곳에 모아서 정의할 수 있게 도와주는 타입자바스크립트에서는 존재 x, 타입스크립트에서 자체적으로 제공Enum는 충분히 Union으로 대체가 가능해서 Enum를 쓰지 않고 Union으로 사용해서 타입을 보장하자!Enum를 쓸 수 밖에 없는
타입 추론예제들은 간단하고 한눈에 봐도 아는 것이라 생략이 가능하지만 타입을 정확하게 명시(특히 함수는 더)
어떤 타입을 return 하는지 분명히 알 경우 (100% 장담)
하나를 수정하기 위해서 모든 코드를 이해해야함사이드 이펙트 발생 위험유지보수 x 확장성 x프로그램을 객체로 정해서 객체들끼리 의사소통!서로 관련있는 데이터와 함수로 여러가지 object로 정의해서 프로그래밍 하는 것object 단위한 곳에서 문제가 생기면 관련있는 ob
서로 연관있는 관련있는 데이터와 함수를 한 object안에 담아두고 외부에서 볼 필요가 없는 데이터를 잘 숨겨둠으로 써 캡슐화함외부에서 함수로 내부의 있는 데이터를 변경 할 수 있음! ex) 고양이어떤 관련있는 데이터를 object로 묶을건지어떤 데이터는 외부에서 볼
일반 멤버 변수처럼 사용 가능어떠한 계산을 해야할 때 유용하게 사용 가능
제네릭은 C즉, 변수나 인수에 타입을 정해주는 Concrete같이 딱딱한 기법과 달리 어떤 타입을 쓸지 정해주지 않고 그 타입에 대해 어떤 변수를 넣어주냐에 따라 결정되는 유연한 기법any를 사용하면 아래와 같은 경우에도 에러가 발생하지 않는다Generic의 경우 에러