타입 | 예시 |
---|---|
EventTarget | window, XMLHttpRequest |
Node | document, Text, Comment |
Element | HTMLElement, SVGElement 포함 |
HTMLElement | < i> , < b> |
HTMLButtonElement | < button> |
EventTarget은 DOM 타입 중 가장 추상화된 타입이다. 이벤트 리스너를 추가하거나 제거하고, 이벤트를 보내는 것밖에 할 수 없다.
<
html>
은 HTMLElement, <
svg>
는 SvgElement
일반적으로 타입 단언문은 지양해야 하지만 DOM 관련해서는 타입스크립트보다 우리가 더 정확히 알고 있는 경우이므로 단언문을 사용해도 좋다.
❗ public, protected, private 같은 접근 제어자는 타입스크립트 키워드이기 때문에 컴파일 후에는 제거된다. 따라서 타입스크립트의 접근 제어자들은 단지 컴파일 시점에만 오류를 표시해 줄 뿐이며, _(언더스코어) 관례와 마찬가지로 런타임에는 아무런 효력이 없다. 즉, 정보를 감추기 위해 private을 사용하면 안된다.
👉 확실히 데이터를 감추고 싶다면 클로저를 사용하자
// tsconfig.json
{
"compilerOptions": {
"sourceMap": true
}
}
이렇게 설정하고 컴파일을 실행하면 각 .ts 파일에 대해서 .js와 .js.map 두 개의 파일을 생성하는데 .js.map파일이 소스맵이다. 소스맵이 .js 파일과 같이 있으면, 브라우저의 디버거에서 새로운 index.ts파일이 나타난다. 이제 원하는 대로 breakpoint를 설정할 수 있고 변수를 조사할 수 있다.