typescript
타입 좁히기 (Type Guard)
타입 좁히기는 타입스크립트를 넓은 타입으로부터 좁은 타입으로 진행하는 과정을 말합니다. null 체크 존재하지 않을 때 null을 반환하는 메소드나 함수의 경우 if 문을 통한 null 체크를 통해 타입 좁히기를 할 수 있습니다. instanceof 생성자의 프로토타입 속성이 객체 프로토타입 체인 어딘가에 존재하는 여부를 확인할 수 있는 instanceof 연산자를 if문과 사용해서 타입을 좁힐 수 있습니다. 속성 체크 (in) 프로퍼티가 존재하는지 확인할 수 있는 in 연산자를 통해 타입을 좁힐 수 있습니다. 내장 함수 사용 Array.isArray 같이 타입을 판별할 수 있는 내장함수를 사용하여 타입을 좁힐 수 있습니다. tagged union 패턴 사용 명시적으로 태그를 붙여 타입을 좁힐 수 있습니..
TypeScript Intersection & Union
타입스크립트의 타입은 타입들의 집합을 표현해 타입의 범위를 명확하게 표현하는 것입니다. 아래 코드를 Intersection(교집합)을 사용한 코드를 살펴봅시다. Intersection 처음 코드를 보았을 때 Person은 name을 갖고 있고 Lifespan은 birth와 death 프로퍼티를 갖고 있기 때문에 교집합이 없어서 never(공집합)이라고 생각했습니다. 아래 Union(합집합) 코드도 살펴봅시다. Union 합집합이기 때문에 모든 property를 갖고 있어야하지 않나? 생각할 수 있지만 그렇지 않습니다. type의 집합이기 때문에 interface를 정의하면 아래와 같습니다.
알고스팟 게임판 덮기 [ TypeScript, JavaScript ]
문제 문제 코드: BOARDCOVER algospot.com :: BOARDCOVER 게임판 덮기 문제 정보 문제 H*W 크기의 게임판이 있습니다. 게임판은 검은 칸과 흰 칸으로 구성된 격자 모양을 하고 있는데 이 중 모든 흰 칸을 3칸짜리 L자 모양의 블록으로 덮고 싶습니다. 이 algospot.com 풀이과정 - 나올 수 있는 블록 모양을 한 점을 기준으로 좌표로 나타냈습니다. - 문제를 풀기위한 변수들을 초기화 및 세팅해주었습니다. - 블럭을 놓을 수 있는지 확인 및 되돌리기 위한 함수를 작성했습니다. - 빈 칸을 만날때까지 for문을 돌고 빈 칸 만났을 경우 탐색을 하는 재귀문을 작성하였습니다. 코드 TypeScript JavaScript
알고스팟 Hello World! [ TypeScript, JavaScript ]
문제 문제 코드: HELLOWORLD algospot.com :: HELLOWORLD Hello World! 문제 정보 문제 예의 바른 프로그래머들은 인사를 잘 합니다. 프로그래밍 언어를 배우면서 처음으로 짜는 프로그램이 항상 Hello World! 인 것만 봐도 알 수 있지요. AOJ 의 첫 문제에서도 www.algospot.com 풀이과정 알고스팟을 처음 사용할 때 기본 입출력을 확인하기 위한 문제였습니다. 앞으로 풀 문제를 위한 세팅을 하는 과정을 거쳤습니다. TypeScript 세팅 https://velog.io/@ansrjsdn/TypeScript-설치-및-설정 TypeScript 설치 및 설정 타입스크립트를 실행하기 위해서는 nodejs가 설치되어 있어야 한다. 그리고 원하는 폴더로 가서 설정..