[TypeScript] νƒ€μž… μΆ”λ‘ (Type Inference)

πŸ“„ νƒ€μž… μΆ”λ‘ (Type Inference)

νƒ€μž… 좔둠은 νƒ€μž… μŠ€ν¬λ¦½νŠΈκ°€ μ½”λ“œλ₯Ό 해석해 λ‚˜κ°€λŠ” λ™μž‘μ„ λœ»ν•©λ‹ˆλ‹€.

let x = 3;

νƒ€μž… μŠ€ν¬λ¦½νŠΈλŠ” x에 νƒ€μž…μ„ μ§€μ •ν•˜μ§€ μ•Šμ•„λ„ numberλΌλŠ” νƒ€μž…μ„ μΆ”λ‘ ν•©λ‹ˆλ‹€.

λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κ±°λ‚˜ 속성, 인자의 κΈ°λ³Έ κ°’, ν•¨μˆ˜μ˜ λ°˜ν™˜ κ°’ 등을 μ„€μ •ν•  λ•Œλ„ νƒ€μž… 좔둠이 μΌμ–΄λ‚©λ‹ˆλ‹€.

πŸ“„ μΈν„°νŽ˜μ΄μŠ€μ™€ μ œλ„€λ¦­μ„ μ΄μš©ν•œ νƒ€μž… μΆ”λ‘ 

interface Dropdown<T> {
  value: T;
  title: string;
}
interface DertailedDropdown<K> extends Dropdown<K> {
  description: string;
  tag: K;
}

var detailedItem: DertailedDropdown<string> = {
  title: "abc",
  description: "ab",
  value: "a",
  tag: "a",
};

πŸ“„ Best Common Type μΆ”λ‘  방식

νƒ€μž… μŠ€ν¬λ¦½νŠΈκ°€ μΆ”λ‘ ν•˜λŠ” κ°€μž₯ κ·Όμ ‘ν•œ νƒ€μž…μ„ Best Common Type이라고 ν•©λ‹ˆλ‹€.

let arr = [0, 1, null];
// type: number | null

νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” μΆ”λ‘ λ˜λŠ” νƒ€μž…λ“€μ„ μœ λ‹ˆμ˜¨μœΌλ‘œ μ§€μ •ν•©λ‹ˆλ‹€.

좜처

Leave a comment