์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ๋ฉ๋ชจ๋ฆฌ
- App Runner
- CS
- #ํ๋ก์ ํธ์บ ํ #ํ๋ก์ ํธ์บ ํํ๊ธฐ #์ ๋ฐ๋ฏธ #์ค๋์ดํผํฉํ ๋ฆฌ #์ ์ง์ฝํฌ๋น #์ธ์ฌ์ด๋์์ #IT๊ฐ๋ฐ์บ ํ #๊ฐ๋ฐ์๋ถํธ์บ ํ #๋ฆฌ์กํธ #react #๋ถํธ์บ ํ #๋ฆฌ์กํธ์บ ํ
- ๋คํธ์ํฌ
- ํ๋ก์ ํธ์บ ํ
- Algorithm
- ํ์ ์คํฌ๋ฆฝํธ
- ์ธ์ฌ์ด๋์์
- ์๋ฐ์คํฌ๋ฆฝํธ
- javascript
- ๋ฆฌ์กํธ
- typescript
- IT๊ฐ๋ฐ์บ ํ
- ์ค๋ ๋
- react-query
- react
- ์๊ณ ๋ฆฌ์ฆ
- ์ค๋์ดํผํฉํ ๋ฆฌ
- html
- ip
- ํ๋ก๊ทธ๋๋จธ์ค
- ๊ฐ๋ฐ์๋ถํธ์บ ํ
- ์ ์ง์ฝํฌ๋น
- ์ ๋ฐ๋ฏธ
- cs #๋คํธ์ํฌ
- ํด์
- BFS
- ํ๋ก์ธ์ค
- React.js
- Today
- Total
Bin's Blog
์ค๋์ TypeScript ๋ณธ๋ฌธ
๐ ํ์ ์คํฌ๋ฆฝํธ๋ก HTML ๋ณ๊ฒฝ๊ณผ ์กฐ์ํ ๋ ์ฃผ์์
๐ h4 ์์ ๊ธ์๋ฅผ ๋ฐ๊ฟ๋ณด์
<h4 id="title">์๋
ํ์ธ์</h4>
๐ selector๋ก html์ ์ฐพ์ผ๋ฉด ํ์ ์ด Element | null์ด๊ธฐ ๋๋ฌธ์ html์ ์ฐพ์ง ๋ชปํ๋ฉด null์ด ๋๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ ํด๊ฒฐํด์ค์ผํ๋ค.
1๏ธโฃ ํด๊ฒฐ์ฑ (Type Narrowing)
let ์ ๋ชฉ = document.querySelector("#title");
if (์ ๋ชฉ !== null) {
์ ๋ชฉ.innerHTML = "๋ฐ๊ฐ์์"
}
2๏ธโฃ ํด๊ฒฐ์ฑ (instanceof)
if (์ ๋ชฉ instanceof Element) {
์ ๋ชฉ.innerHTML = "๋ฐ๊ฐ์์"
}
3๏ธโฃ ํด๊ฒฐ์ฑ (as)
// ์ด ์์๋ element๋ผ๊ณ ์ฌ๊ธฐ์ณ์ฃผ์ธ์
// null์ด ๋ค์ด์๋ element type๊ฐ๋ฅ
// ๋น์์์ 100%ํ์ ์ด ์์๋
let ์ ๋ชฉ1 = document.querySelector("#title") as Element;
์ ๋ชฉ.innerHTML = "๋ฐ๊ฐ์์"
4๏ธโฃ ํด๊ฒฐ์ฑ (optional chaining)
// ์ ๋ชฉ์ innerHTML์ด ์์ผ๋ฉด ์ถ๋ ฅํด์ฃผ๊ณ
// ์์ผ๋ฉด undefined ๋ฑ์ด๋ด (optional chaing)
let ์ ๋ชฉ = document.querySelector("#title");
if (์ ๋ชฉ?.innerHTML !== undefined) {
์ ๋ชฉ.innerHTML = "๋ฐ๊ฐ์์"
}
๐ a ํ๊ทธ์ href ์์ฑ์ ๋ฐ๊พธ๊ณ ์ถ์ผ๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
<a href="naver.com">๋งํฌ</a>
๐ href, style, css๋ฅผ ๋ฐ๊พธ๋ ค๋ฉด Element๋ก ํ๋ ๊ฒ์ด ์๋๋ผ HTMLAnchorElement์ ํตํด์ ๋ฐ๊ฟ์ผ ํ๋ค.
let ๋งํฌ = document.querySelector('#link');
if (๋งํฌ instanceof HTMLAnchorElement) {
๋งํฌ.href = "https://www.naver.com/"
}
๐ 3๊ฐ์ ๋งํฌ๋ฅผ ๋ชจ๋ ๋ฐ๊พธ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
<a class="naver" href="naver.com">๋งํฌ</a>
<a class="naver" href="naver.com">๋งํฌ</a>
<a class="naver" href="naver.com">๋งํฌ</a>
๐ querySelectAll()์ ํตํด์ naver๋ผ๋ ํด๋์ค๋ฅผ ๊ฐ์ง ์ ๋ค์ ๋ค ๋ถ๋ฌ์ค๊ณ forEach()๋ฌธ์ ํ์ฉํ๋ค.
๋งํฌ์ค.forEach((link) => {
if (link instanceof HTMLAnchorElement) {
link.href = "https://kakao.com"
}
})
'TypeScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ค๋์ TypeScript (0) | 2023.07.19 |
---|---|
์ค๋์ TypeScript (0) | 2023.07.17 |
์ค๋์ TypeScript (0) | 2023.07.16 |
์ค๋์ TypeScript (0) | 2023.05.09 |
์ค๋์ TypeScript (0) | 2023.05.08 |