๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

typescript

TypeScript / ํƒ€์ž… ์ถ”๋ก , ํƒ€์ž… ๋‹จ์–ธ

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