holdanddeepdive / typescript-study

4 stars 0 forks source link

이펙티브 타입스크립트 4장 & 5장 #21

Open sbyeol3 opened 1 year ago

sbyeol3 commented 1 year ago

아이템 34. 부정확한 타입보다는 미완성 타입을 사용하기

아이템 35. 데이터가 아닌, API와 명세를 보고 타입 만들기

아이템 36. 해당 분야의 용어로 타입 이름 짓기

아이템 37. 공식 명칭에는 상표를 붙이기

아이템 38. any 타입은 가능한 한 좁은 범위에서만 사용하기

function f1() {
  const x: any = expressionReturingFoo();
  processBar(x);
}

function f2() {
  const x = expressionReturingFoo();
  processBar(x as any);
}

아이템 39. any를 구체적으로 변형해서 사용하기

function getLengthBad(arr: any) {
  // ❌
  return arr.length;
}

function getLength(arr: any[]) {
  return arr.length;
  // 반환타입이 number로 추론
}
type Fn0 = () => any; // 매개변수 없이 호출 가능한 모든 함수
type Fn1 = (arg: any) => any; // 매개변수 1개
type Fn2 = (...args: any[]) => any; // 모든 개수의 매개변수 -> "Function"

아이템 40. 함수 안으로 타입 단언문 감추기