always 반환 타입: a -> b -> a 언제나 동일한 값을 반환한다. const라고 다른 언어에서 알려져 있다. [1,2,3,4].map(always(0)) => [0,0,0,0] curry 반환 타입: (fn: (...args: TArgs) => TReturn): CurriedFn 여러 인자를 받는 함수의 커리 버전이다. 타입스크립트에서 타입 유추가 가능하다. const sum3 = ( x: number, y: number, z: number ) => x + y + z const curriedSum3 = curry(sum3) === curriedSum3(1) // (y: number, z: number) => number curriedSum3(1, 2) // (z: number) => numbe..
참고 문서 --- Either는 Left와 Right 두 방향으로 구성된 데이터 타입이다. Maybe와 유사하나 누락된 값에 대한 정보 저장이 가능하다는 특징이 있다(가령 에러 메시지 같은). "Right is right" 라는 컨벤션이 있어 대개 성공값은 Right에, 실패값은 Left에 저장한다. 오른쪽 편향적이므로 map, chain과 유사한 메소드들은 Right에서 동작한다. Left 일반적으로 동작에 대한 실패를 나타내는 정보를 담당한다.// Inferred type is randomEither: () => Either | Either const randomEither = () => Math.random() > 0.5 ? Right(1) : Left('Error')Left('..
기초 Maybe는 데이터 타입으로 함수의 근본적 오류와 결측값 표시(???)에 사용된다. 값일 수도(Just) 있고 아무것도 아닐 수도(Nothing) 있다. Just는 현재의 값을 래핑하는 객체이다. Nothing은 부재의 값을 의미한다. 단순히 null이라고 해석해도 좋다. 두 값은 모두 null 체크가 되지 않은 옵셔널한 값이나 익셉션 핸들링을 다루기 쉽게 돕는다. 사용하지 않은 경우 const port = parseInt(getConfig()?.port ?? '8080'사용한 경우 const port = getConfig() .chain(x => x.port) .map(parseInt) .orDefault(8080) 메소드의 종류 of 타입: Maybe Just 타입으로 래핑된 값을..
target 타입스크립트가 자바스크립트로 변환될 때, 그 버전을 지정함. 일반적으로 es2013 버전이나, 모던 브라우저 대부분이 es2015 이후의 버전을 지원하므로 조금 더 올려줘도 좋을 것 같음(서버의 경우에는 해당 없음). noImplicitAny true일 때, 암묵적 any 변수에 대한 오류를 발생시킴. strictNullCheck true일 때, null 및 undefined에 대한 처리를 엄격하게 관리. undefined 및 null에 대한 참조를 방지. https://www.typescriptlang.org/ko/docs/handbook/2/basic-types.html