{}; // ν•¨μˆ˜ κ°€λŠ₯"> {}; // ν•¨μˆ˜ κ°€λŠ₯"> {}; // ν•¨μˆ˜ κ°€λŠ₯">

image.png

let value: any;

value = "Hello"; // λ¬Έμžμ—΄ κ°€λŠ₯
value = 123; // 숫자 κ°€λŠ₯
value = true; // λΆˆλ¦¬μ–Έ κ°€λŠ₯
value = {}; // 객체 κ°€λŠ₯
value = () => {}; // ν•¨μˆ˜ κ°€λŠ₯

anyλŠ” νƒ€μž… κ³„μΈ΅μ˜ 상단에 μœ„μΉ˜ν•œλ‹€. μ–΄λ–€ νƒ€μž…μ΄λ“  ν• λ‹Ή κ°€λŠ₯ν•˜κ³ , νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ νƒ€μž… 체크λ₯Ό λ¬΄μ‹œν•œλ‹€. νƒ€μž… μ•ˆμ •μ„±μ΄ μ—†λŠ” anyνƒ€μž…μ€ μ—¬λŸ¬κ°€μ§€ 문제λ₯Ό λ°œμƒμ‹œν‚¬ 수 μžˆλŠ”λ° 예λ₯Όλ“€λ©΄ μ•„λž˜μ™€ κ°™λ‹€.

let value: number = 42;

// `as any`λ₯Ό μ‚¬μš©ν•˜μ—¬ νƒ€μž… κ°•μ œ λ³€ν™˜ κ°€λŠ₯(νƒ€μž… 검사 우회)
value = "hello" as any; 
value = { name: "Alice" } as any; 

console.log(value); 
// 선언에 따라 νƒ€μž…μ²΄μ»€λŠ” numberνƒ€μž…μœΌλ‘œ νŒλ‹¨ν•  것이고, λŸ°νƒ€μž„μ—μ„œ μ˜ˆμƒμΉ˜ λͺ»ν•œ λ¬Έμ œκ°€ λ°œμƒν•  수 있음

anyλŠ” νƒ€μž…μ΄λΌκΈ°μ—” νƒ€μž… 체킹을 ν•΄μ œν•˜μ—¬ λ³€μˆ˜λ₯Ό κ·Έλƒ₯ μžλ°”μŠ€ν¬λ¦½νŠΈ λ³€μˆ˜μ²˜λŸΌ μ‚¬μš©ν•  수 있게 ν•œλ‹€. κ²°κ΅­ νƒ€μž… 섀계가 λΆˆλΆ„λͺ…ν•΄μ§€κ³  νƒ€μž…μ‹œμŠ€ν…œμ˜ 신뒰도λ₯Ό λ–¨μ–΄λœ¨λ¦°λ‹€.

πŸ”₯ any ν™œμš© μΌ€μ΄μŠ€

  1. 점진적인 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ (JS β†’ TS)

    function legacyFunction(data: any) {
      return data * 2; // 문제 λ°œμƒ κ°€λŠ₯!
    }
    
  2. 라이브러리 νƒ€μž… μ •μ˜κ°€ μ—†λŠ” 경우(μ™ΈλΆ€ νŒ¨ν‚€μ§€ μ‚¬μš©)

    import someLibrary from "some-legacy-library";
    
    const result: any = someLibrary.doSomething();
    
  3. νƒ€μž…μ„ μ •ν™•νžˆ μ•Œ 수 μ—†λŠ” 동적 데이터 처리

async function fetchData(url: string): Promise<any> {
  const response = await fetch(url);
  return response.json(); // 데이터 ꡬ쑰λ₯Ό μ •ν™•νžˆ λͺ¨λ₯Ό λ•Œ
}
  1. 맀우 μœ μ—°ν•œ ν•¨μˆ˜λ‚˜ μœ ν‹Έλ¦¬ν‹° 개발

    function flexibleFunction(obj: any): any {
      return JSON.parse(JSON.stringify(obj));
    }