분류 전체보기

👶 TypeScript

에러 처리 - 예외 반환

예외 반환 TypeScript는 자바가 아니며 throws 문을 지원하지 않습니다. 참고로 throws 문은 메서드가 어떤 종류의 런타임 예외를 발생시킬 수 있는지 알려주어서 해당 메서드의 사용자가 발생 가능한 에러를 적절하게 처리할 수 있도록 도와줍니다. 하지만 유니온 타입을 이용해 비슷하게 흉내 낼 수 있습니다. function ask() { return prompt("생일 언제임?"); } // 커스텀 에러 타입 class InvalidDateFormatError extends RangeError{} class DateISInTheFutureError extends RangeError{} /** * * @throw {InvalidDateFormatError} : 사용자가 생일을 잘못 입력함 * @t..

👶 TypeScript

에러 처리 - 예외 던지기

예외 던지기 문제가 발생하면 null 반환 대신 예외를 던지겠습니다. 그러면 어떤 문제냐에 따라 대처가 가능할 수 있고, 디버깅에 도움 되는 메타 데이터도 얻을 수 있습니다. function ask() { return prompt("생일 언제임?"); } function parse(birthday: string): Date { let date = new Date(birthday); if (!isValid(date)) { throw new RangeError('YYYY/MM/DD 로 입력하셈여') } return date; } 이제 이 코드를 사용할 때 전체 응용 프로그램이 크래시 되지 않도록 매끄럽게 처리하기 위해 주의해서 예외를 잡아야 합니다. function ask() { return prompt("..

👶 TypeScript

에러 처리 - null 반환

null 반환 유저의 생일을 입력받아 Date 객체로 파싱 하는 프로그램을 구현해 봅시다. function ask(){ return prompt('생일 언제임?') } function parse(birthday: string): Date { return new Date(birthday) } let date = parse(ask()) console.info('생일은', date.toISOString()) 단순한 텍스트 입력창을 사용했으므로 사용자가 입력한 내용을 검증해야 합니다. function ask(){ return prompt('생일 언제임?') } function parse(birthday: string): Date | null{ let date = new Date(birthday) if(!isVa..

👶 TypeScript

프로토타입 안전하게 확장하기

프로토타입 안전하게 확장하기 예전엔 프로토타입 확장이 안전하지 않은 일이었지만 이제 TypeScript처럼 정적 타입 시스템을 이용하면 안전하게 확장할 수 있습니다. 예시를 위해 Array 프로토타입에 zip 메서드를 추가해 보겠습니다. 프로토타입을 안전하게 확장하기 위해 두 단계로 진행할 것입니다. 먼저 .ts 파일에서 Array의 프로토타입을 확장한 다음 새로운 zip 메서드를 프로토타입에 추가합니다. // TS에 zip이 무엇인지 설명 interface Array{ // ① zip(list: U[]): [T, U][] } // .zip 구현 Array.prototype.zip = function ( this: T[], // ② list: U[] ): [T, U][] { return this.map(..

개발자 린다씨
'분류 전체보기' 카테고리의 글 목록 (12 Page)