노드는 ts 파일을 실행시킬 수 없다.tsc 명령어로 js 파일을 만들고 노드로 실행할 수 있다.이를 합친 ts-node 라는 것도 있다.프로젝트를 생성하고, ts 설정을 하자.npm init tsc --init컴파일을 관찰모드로 하고 노드몬으로 js 파일이 바뀔 때마
declare로 ts에게 알릴 수 있다.타입스크립트 지원이 안되면누군가 만들어놓은 type 관련 라이브러리를 설치해서 사용하면 된다.
tsconfigoutFile 은 ts가 namespace 와 연결되도록 한다.module AMD로 수정한다.클래스 이넘 인터페이스를 네임스페이스로 감싸고 export한다.import는 아래와 같이 한다.하지만 es6 모듈 사용법을 권장한다.
프로젝트 목록을 드래그 앤 드롭을 적용해보자.먼저 HTML에 원하는 태그에 draggable="true" 속성을 추가하자.위 인터페이스를 사용할 것이다.이것을 implements 해보자.아이템에 dragstart, dragend를 적용했다.드롭될 목록에 dragover
추상 private 는 ts가 지원하지 않는다.public 메서드는 private 메서드 위에 작성하는 것이 좋다.제네릭과 상속으로 코드 리팩토링을 해보자.
프로젝트를 만들 때목록에 추가하고리스너 함수를 추가할 수 있는상태 관리를 해보자.생성자를 private 으로 숨기고 getInstance 스태틱 메서드를 통해서 생성할 수 있도록 한다.하나의 인스턴스만 사용한다.이러한 방식이 싱글톤 방식이다.프로젝트를 생성할 때 프로젝
Title, Description, People 위 3개의 인풋을 받는 form 태그를 렌더링하고 서브밋을 할 수 있는 앱을 ts 객체지향으로 만들어보자. 이렇게 돔을 렌더링 할 수 있다. 이제 서브밋 이벤트를 달아보자.
null를 반환하지 않을 것이라는 확신이 있으면 !(느낌표)를 사용한다.그렇지 않으면 if문으로 확인한다.하지만 요소가 있다는 확신이 없기 때문에 형 변환을 할 수 없다.요소가 있을 때 형 변환을 하고 사용한다.
typeof 객체 === '타입'메소드 이름 or 프로퍼티 이름 in 객체클래스 instanceof 메소드 이름 or 프로퍼티 이름typeof, in, instanceof 타입 가드를 사용할 수 있다.
인터페이스는 순수 타입스크립트 기능이다.인터페이스는 클래스와 다르게 청사진으로 사용하지 않는다.클래스는 인스턴스화할 수 있고 컴파일 되지만인터페이스는 인스턴스화할 수 없고 컴파일되지 않는다.