문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 TypeScript (문단 편집) === 결국에는 자바스크립트로 컴파일 === 타입스크립트는 결국 자바스크립트로 컴파일되어 동작하므로 '런타임에는 약타입'이라는 약점이 있다. 가령 타입스크립트로 작성한 Node.js 서버가 HTTP 요청을 받았을 때 클라이언트가 `username`이라는 값을 보내주었다고 선언할 수는 있지만, 이는 가정이 맞았을 때 자신의 코드가 잘 동작함을 보장할 뿐이지 사용자가 실제로 어떤 값을 보냈는지 검사하지는 않는다. 이는 타입스크립트 사용 시 반드시 고려해야 할 문제이다. 실행 시점에 자료형을 검사하려면 type guard 함수를 직접 작성하거나, io-ts, runtypes 등의 라이브러리를 사용해 자료형 검사를 부분적으로 자동화할 수 있다. 하지만 언어 차원에서 이를 지원하는 것이 아니므로 결국 사용자가 불편을 감수할 수밖에 없다. 다른 강타입 언어들 또한 대체로 컴파일 시점에 자료형을 확인하지, 실행 시점에는 타입을 검사하지 않는다. 가령 C++ 컴파일러는 형변환이 불가능한 자료형 간의 대입을 금지하지만, 컴파일된 기계어에는 자료형을 검사하는 명령이 없다. 중요한 차이점이라면 다른 강타입 언어는 다른 라이브러리를 사용할 때 컴파일러를 거쳐야 하니 타입 규칙을 지켜야 하지만, 타입스크립트 코드를 컴파일해 나온 자바스크립트 코드를 직접 호출할 경우 ''컴파일러를 거치지 않으므로'' 예상치 못한 자료형을 전달하는 걸 막을 수 없다. 따라서 자신의 프로그램이 외부로부터 신뢰할 수 없는 데이터를 받아오는 경계선을 파악하고 필요할 경우 런타입 타입 검사 코드를 추가해야 한다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기