mingg IT

[Typescript] 구조적 타이핑 예시 본문

FrontEnd

[Typescript] 구조적 타이핑 예시

mingg123 2022. 3. 2. 21:20
interface Author {
  first : string;
  last : string;
}

function getAuthors(database : PostgresDB) : Author[] {
  const authorRows = database.runQuery('SELECT FIRST, LAST FROM AUTHORS');
  return authorRows.map(row=> ({first : row[0], last : row[1]}))
}


interface DB{
  renQuery : (sql:string) => any[];
}

function getAuthors(database : DB) : Author[] {
  const authorRows = database.renQuery('Select FIRST, LAST FROM AUTHORS');
  return authorRows.map(row=> ({first : row[0], last : row[1]}));
}

runQuery 메서드가 있기 때문에 실제환경에서도 getAuthors 에 PostgresDB를 사용할 수 있음.

구조적 타이핑을 활용하여 더 구체적인 인터페이스를 정의하는 것이 나은 방법임.

유닛 테스트도 손쉽게 할 수 있음.

'FrontEnd' 카테고리의 다른 글

[HTML] Shadow DOM  (0) 2022.04.09
[Next.js] Next.js 에서 .module.scss 사용하기  (0) 2022.03.08
[Typescript] 주석 사용법  (0) 2022.02.25
[Typescript] 프로젝트 내 any 갯수 추적하기  (0) 2022.02.24
[React] lodash debounce 사용  (0) 2022.02.23
Comments