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를 사용할 수 있음.
구조적 타이핑을 활용하여 더 구체적인 인터페이스를 정의하는 것이 나은 방법임.
유닛 테스트도 손쉽게 할 수 있음.