네임스페이스(Namespace)를 쓰는 가장 큰 이유는 무엇일까요?강력한 그룹화입니다.이 강력한 그룹화를 통해 공간을 구분하고 외부 사용자에게 명확한 공간을 제공하여 가독성 + 유지보수성을 올려줍니다. 네임스페이스로 나뉜 공간은 해당 네임스페이스에 소속된 개체들만의 공간으로 사용됩니다.이러한 강력한 그룹화는 외부로 배포해야 하는 라이브러리들에게서 강력한 장점을 발휘합니다. 네임스페이스만 겹치지 않는다면 어떤 프로젝트에다 붙여도 독립된 공간을 보장받기 때문입니다.이런 독립된 공간은 이름이 구분되어 명확한 접근을 보장하므로 문의를 받을 때도 항상 같은 위치를 알려주므로 대응도 쉽게 할 수 있게 해줍니다. 1. 자바스크립트에서의 네임스페이스그런데 자바스크립트에는 네임스페이스라는 개념이 없습니다.이것을 보안하..
일반적인 프로젝트 빌드는 진입점을 기준으로 빌드가 되므로 별다른 설정 없이도 최적화(or 트리 쉐이킹), 빌드, 파일 합치기, 난독화, 최소화 같은 과정들이 이루어 집니다. 문제는 진입점이 없는 라이브러리인 경우 여러 가지 제한이 많다는 것입니다. 0. 타입스크립트 라이브러리의 배포 타입스크립트로 만든 라이브러리를 수동으로 배포하려면 그냥 타입스크립트 채로 배포해도 큰 문제는 없습니다. 배포된 라이브러리를 사용하는 개발자도 타입스크립트를 쓴다면 같이 빌드하면 그만이니까요. 타입스크립트를 안 쓰는 경우나 난독화가 필요하거나 일관성 유지를 원한다면 빌드한 다음 배포하는 것이 좋습니다. 이 포스팅에서는 빌드 결과물을 출력하고 같이 사용할 설명파일(.d.ts)파일을 같이 생성합니다. 난독화나 미니마이즈 같은 것..
타입스크립트는 자바스크립트로 변환되어 동작하므로 인터페이스를 비교할 방법은 없습니다. 자바스크립트에서 사용하는 꼼수를 그대로 사용해야 한다는 뜻입니다. 0. 테스트 환경 만들기 테스트를 위해 인터페이스 2개를 아래와 같이 만듭니다. export interface Test1Interface { Test1_string: string, Test1_int: number, } export interface Test2Interface { Test2_string: string, Test2_int: number, } 아래와 같이 인터페이스를 가지고 있는 변수를 만듭니다. (저는 클래스를 선호하기 때문에 클래스로 작성했습니다.) Test1Inf: Test1Interface = { Test1_int: 1 , Test1_s..
일반적인 언어에서 열거형(enum) 코드의 일관성과 가독성을 높이는 강력한 기능 중 하나입니다. (= 높은 생산성) 근데 타입스크립트 관련 글을 보다 보면 열거형을 쓰지 말라는 소리를 종종 볼 수 있습니다. 이것은 타입스크립트가 자바스크립트로 변환되는 과정에서 많은 비용이 드는 형식으로 바뀌기 때문입니다. 1. 타입스크립트(TypeScript)의 열거형이 자바스크립트로 변환될 때.... 타입스크립트가 자바스크립트로 변환될 때 열거형은 두 가지 문제가 발생합니다. 1) 역방향 접근을 위해 함수형으로 변환됩니다. 2) 이 문제 때문에 사용하지 않는 코드 정리(트리 쉐이킹, Tree Shaking)로 제거되지 않는 코드가 생성됩니다. 생성된 코드를 보면 아래와 같습니다. //타입스크립트 enum Test1 {..
자바스크립트(JavaScript)는 엄밀하게 말하면 오버로드(Overload)가 없습니다. 타입스크립트(TypeScript)는 IDE에서나 타입스크립트지 출력되면 자바스크립트입니다. 이런 특성 때문에 오버로드도 자바스크립트의 특성을 따라가게 됩니다. 그렇다면 타입스크립트는 오버로드를 어떻게 구현하고 있을까요? 1. 자바스크립트의 오버로딩(Overloading) 자바스크립트는 오버로드가 없습니다. "앵? 파라미터 다르게 해서 같은 이름으로 받는 거 쓸 수 있는데요?" 라는 말을 할 수 있겠지만 자바스크립트의 오버로드는 엄밀하게 말하면 오버로딩이 아니라 자바스크립트의 특성을 이용한 꼼수입니다. 아래 코드를 봅시다. function Main() { console.log("parameter 1 : " + Ove..
1. 문제의 발견 잘 세팅해서 쓰고 있는데 어느 날 갑자기 타입스크립트가 경로를 못 찾는 에러를 뿜기 시작했습니다. 비주얼 스튜디오에서 에러만 날뿐 빌드도 잘되고 에러 없이 디버깅도 잘됩니다. 2. 원인 및 해결 방법 어느 게 문제인지 찾지 못하던 중에..... 돌아다니는 타입스크립트 설정파일(tsconfig.json)를 보면 'include'에 'src'들어가 있는 게 많다? 그래서 넣어보니 에러가 제거되었습니다. 마무리 일단은 해결됐지만 언제 또 무슨 일이 터질지는.... 원래는 에러가 나야 하는 건데 안 나던 것인지 다른 사람들 설정 파일에는 'src'가 들어있는 게 많습니다. 기존에는 왜 에러가 안 났으며, 빌드에도 지장 없는 게 왜 에러로 잡히며, 왜 지금은 에러로 잡히는지....... 모든 것..
타입스크립트를 시작하기 위한 예제를 따라 해 보겠습니다. 참고 : typescript - Quick start 0. 준비하기 타입스크립트(typescript)가 설치돼 있지 않다면 설치해 줍니다. ( 참고 - typescript - Get TypeScript, [TypeScript] 타입스크립트(TypeScript)를 비주얼 스튜디오(Visual Studio) 2015에 설치하기 ) 타입스크립트를 설치하고 나면 프로젝트에 'TypeScript'라는 항목이 추가된 것을 볼 수 있습니다. 여기서 'TypeScript를 사용한 HTML 응용 프로그램'을 선택하고 프로젝트를 생성해 줍니다. 바로 실행해보면 실시간으로 시간이 갱신되는 타입스크립트 앱을 볼 수 있습니다. 1. 타입스크립트 파일 만들기 프로젝트에 '..
타입스크립트(TypeScript)는 마이크로 소프트에서 만든 자바스크립트 확장입니다. (참고 : Microsoft - TypeScript ) 앵귤러js2(AngulraJS) 때문에 해야 할 것이 많군요 ㅜㅡ 어찌 되었건 설치해봅시다! 1. 다운로드를 받자! 도구 > 확장 및 업데이트 로 누겟(Nuget)을 열고 타입스크립트(TypeScript)를 검색하면.... 아래와 같이 나옵니다. 하지만 다 훼이크고 클릭하면 다운로드 페이지로 넘어갑니다 ㅎㅎㅎ 가장 최신 버전을 클릭해봅시다.(2.0.3) 아래와 같이 다운로드 페이지가 나오는데 다운로드 받습니다. 다운받아서 설치하시면 됩니다. 참 쉽죠? npm이 설치되어 있다면? npm이 설치되어 있다면 아래 명령어로 타입스크립트의 최신 버전을 설치할 수 있습니다. ..