1995년 넷스케이프의 브렌던 아이크는 웹사이트에 쉽게 접근하고 사용 가능한 자바스크립트를 10일 만에 설계했습니다. 별난 특성과 결점 덕분에 조롱 받기도 했지만 그 이후 브라우저, 임베디드 애플리케이션, 서버 런타임 환경 등 엄청나게 발전했습니다.
바닐라 자바스크립트의 함정
순수한 자바스크립트 자체를 바닐라라고 부릅니다.
값 비싼 자유 - 코드 구성의 제한이 없고 이런 자유 덕분에 초기엔 재밌지만, 규모가 커질 수록 그 자유가 얼마나 훼손될 수 있는지 명확해집니다.
다른 언어는 컴파일러가 충돌할 수 있다 판단되면 코드 실행을 거부할 수 있지만, 충돌 가능성을 먼저 확인하지 않고 코드를 실행하는 동적 타입(Dynamic type) 언어인 자바스크립트는 그렇지 않습니다.
부족한 문서 - 블록 주석으로 함수와 변수를 설명하는 JSDoc 표준을 채택했지만, 규모가 있는 코드베이스에서 사용하기 불편합니다.
JSDoc 설명이 코드가 잘못되는 것을 막을 수 없고, 이전에는 정확했더라도 코드 리팩토링 중에 생긴 변경 사항과 관련된 현재 유효하지 않은 JSDoc 주석을 모두 찾기는 어려우며, 복잡한 객체를 설명할 때는 다루기 어렵고 장황해서 타입과 그 관계를 정의하려면 다수의 독립형 주석이 필요합니다.
타입스크립트
타입스크립트는 2010년대 초 마이크로소프트 내부에서 만들어진 후 2012년 출시 및 오픈 소스화되었습니다.
프로그래밍 언어, 타입 검사기, 컴파일러, 언어 서비스
타입스크립트는 매개변수와 변수에 제공되는 값의 타입을 지정 가능하고, 명시적으로 작성해야 합니다.
잘못된 인수를 사용해서 함수를 호출하는 건 타입스크립트가 제한하는 자바스크립트가 가진 근시안적인 자유입니다.
functionsayMyName(fullName){console.log(`You acting kind of shady, ain't callin' me ${fullName}`)}sayMyName("Beyonce","Knowles");