본 블로그는 해당 타입스크립트 강의(코딩애플) 수강 후, 작성된 게시물입니다.
더 자세한 설명은 해당 강의를 참고하세요.
https://codingapple.com/course/typescript-crash-course/
빠르게 마스터하는 타입스크립트 - 코딩애플 온라인 강좌
Next.js는 프론트엔드부터 서버까지 만들 수 있는 React기반 프레임워크입니다. 다른거 필요없이 이것만 사용해도 풀스택 웹개발이 가능합니다. Next.js 사용시 서버사이드 렌더링이 쉽기 때
codingapple.com
<h4>안에 글자를 바꾸기 위해 아래처럼.
//index.html파일
<h4 id="title">안녕하세요</h4>
<a href="naver.com" class="link">링크</a>
<button id="button">버튼</button>
<script src="index.js"></script>
//index.ts파일
let 제목 = document.querySelector("#title");
제목.innerHTML = "반가워요"; //제목에 에러
에러.
유니언타입이기때문.
변경해주고 싶다면 타입을 하나로 narrowing 하면 된다.
HTML 조작 시 narrowing 하는 방법
1. narrowing
let 제목 = document.querySelector('#title');
if (제목 != null) {
제목.innerHTML = '반갑습니다'
}else {
}
2. instanceof 사용한 narrowing
let 제목 = document.querySelector('#title');
if (제목 instanceof HTMLElement) {
제목.innerHTML = '반갑습니다'
}
3. assertion 사용
let 제목 = document.querySelector('#title') as HTMLElement;
제목.innerHTML = '반갑습니다'
4. optional chaining 연산자 사용
let 제목 = document.querySelector('#title');
if (제목?.innerHTML != undefined) {
제목.innerHTML = '반갑습니다'
}
5. strict 설정 false로
//tsconfig.json파일
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strictNullChecks": false
}
}
a 태그의 href 속성을 바꾸려면
//index.html파일
<h4 id="title">안녕하세요</h4>
<a href="naver.com" class="link">링크</a>
<button id="button">버튼</button>
<script src="index.js"></script>
let 링크 = document.querySelector('#link');
if (링크 instanceof HTMLElement) {
링크.href = 'https://kakao.com' //에러
}
let 링크 = document.querySelector('#link');
if (링크 instanceof HTMLAnchorElement) {
링크.href = 'https://kakao.com' //잘됨
}
html 태그 종류별로 정확한 타입명칭이 있습니다.
a태그는 HTMLImageElement처럼 정확한 타입으로 narrowing해주어야함.
타입스크립트에서 eventListener부착하는 법
let 버튼 = document.getElementById('button');
버튼?.addEventListener('click', function(){
console.log('안녕')
})
optional chaining
버튼에 addEventListener 가능하면 하고 아니면 undefined로 남겨라.
실습1) 버튼을 누르면 이미지를 바꿔봅시다.
<img id="image" src="test.jpg">
html 안에 test.jpg를 보여주고 있는 이미지 태그가 있고
이미지를 new.jpg라는 이미지로 바꾸고 싶으면 자바스크립트 코드를 어떻게 짜야할까요?
실습2) 바꾸고 싶은 html 요소가 많습니다.
<a class="naver" href="naver.com">링크</a>
<a class="naver" href="naver.com">링크</a>
<a class="naver" href="naver.com">링크</a>
3개의 링크가 있는데 이 요소들의 href 속성을 전부 https://kakao.com으로 바꾸고 싶은 겁니다.
자바스크립트 코드를 어떻게 짜야할까요?
다른 방법도 생각해 보자
'Web > TypeScript' 카테고리의 다른 글
interface object 타입지정 (0) | 2023.02.20 |
---|---|
class 타입지정 (0) | 2023.02.17 |
함수와 methods에 type alias 지정하는 법 (0) | 2023.02.12 |
Literal Types (0) | 2023.02.12 |
Type Aliases & readonly (0) | 2023.02.12 |