Type Inference(ํ์ ์ถ๋ก )
์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก ๋ณ์, ํํ์ ๋ฑ์ ํ์ ์ ๊ฒฐ์ ํ๋ ํ๋ก์ธ์ค๋ก,
๋ช ์์ ์ธ ํ์ ์ง์ ์ด ์๋๋ผ๋ ์ปดํ์ผ๋ฌ๊ฐ ์ฝ๋์ ๋ฌธ๋งฅ์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ ํ ํ์ ์ ์ถ๋ก ํ๋ค.
๋ณ์ ์ถ๋ก
let myNumber = 5;
let myString = "Hello";
let myBool = true;
myNumber = 23;
// myNumber = "14" // ์ค๋ฅ ๋ฐ์
ํจ์ ๋ฐํ ๊ฐ ์ถ๋ก
function add(x:number, y:number) {
// ์ธ์ ๋ค :number๋ฅผ ์๋ตํด๋ ๋ฌธ์ ์์
return x+y;
// return `${x}${y}` // ์ด ๊ฒฝ์ฐ์๋ const n์ด string์ผ๋ก ์ถ๋ก
}
const n = add(10,5)
๋ฐฐ์ด&๊ฐ์ฒด ์ถ๋ก
let nums = [1, 2, 3, 4] // number๋ก ์ถ๋ก ๋จ
let users = { name: "Eli", age: 30 } // name:string, age:number๋ก ์ถ๋ก
// ์ค๋ฅ
nums.push("Hello")
user.age = "30"
let mixedValues = [1,2,3,"red","green","blue"] // string | number
Type Assertion(ํ์ ๋จ์ธ)
์ง์ ์ปดํ์ผ๋ฌ์๊ฒ ๋ณ์๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ง ํ์ ์ ๋ํด ์๋ฆฌ๋ ๋ฐฉ์
ํ์ ์ ํ์คํ ์๊ณ ์์ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
ํํ ๋ฐฉ์
// # as ๋ฌธ๋ฒ
const someValue: unknown = "Hey there";
const len = someValue.length // error,unknown ํ์
์ด๊ธฐ ๋๋ฌธ์ length์ ์ ๊ทผ ๋ถ๊ฐ
const len1 = (someValue as string).length // ๋ฌธ์์ด๋ก ์ทจ๊ธ
// # <> ๋ฌธ๋ฒ
// JSX ๊ตฌ๋ฌธ์์๋ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
๋ชฉ์
- ์์ ์๋ ํ์
์ด๊ฑฐ๋ ๋ถํ์คํ ํ์
์ผ ๋
- ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ API์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋, ํ์ ๋จ์ธ์ ํตํด ๊ฐ๋ฐ์๊ฐ ํ์ ์ ๋ช ์ํด์ค
interface User {
id: number;
name: string;
email: string;
}
async function fetchUser(): Promise<User> {
let response = await fetch('/api/user');
let data = await response.json();
return data as User;
}
- DOM ์์ ์กฐ์
- button ์์์ disabled ์์ฑ์ด ์ค์ ๋ก๋ ์กด์ฌํ๋, ts์์๋ HTMLElement๋ก ํ๋จํ๊ณ button์ธ์ง input์ธ์ง p์ธ์ง ์ ํํ ์์ง ๋ชปํจ
=> HTMLElement์๋ disabled ์์ฑ์ด ์์ด์ ์๋ฌ๊ฐ ๋ฐ์
=> HTMLButtonElement๋ก ๋ช ์ํจ
const button = document.getElementById("button")
button.disabled = false
const button1 = document.getElementById("button1") as HTMLButtonElement
button1.disabled = false
'typescript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TypeScript / ์ ๋ค๋ฆญ (2) | 2025.06.05 |
---|---|
TypeScript / ํด๋์ค (0) | 2025.06.05 |
TypeScript / ํ์ (2) (0) | 2025.06.04 |
TypeScript / ํ์ (1) (0) | 2025.06.04 |
TypeScript / ๊ฐ์ (0) | 2025.06.02 |