본문 바로가기

반응형

Typescript

(8)
[Joi] 특정 필드 날짜보다 특정일을 초과하면 안되도록 설정하기 아래와 같이 startDate와 finishDate가 있다. 여기서 startDate와 finishDate가 최대 90일까지 가능하도록 (91일 부터는 설정이 되지 않도록) 만들기 There are startDate, finishDate in the following box. I'd like to make the the max days between them 90 days. const validationSettings = { startDate: Joi.date() .required() .format('YYYY-MM-DD') .max(Joi.ref('finishDate')) .label('시작 날짜'), finishDate: Joi.date() .required() .format('YYYY-MM-DD') ..
[Postman] 엑셀 파일 다운로드 API 요청 보내기 / 포스트맨 / how to send Download API node.js 로 엑셀파일 생성 및 다운로드 코드를 작성했는데 postman API "SEND"를 누르면 계속 깨진 글자들이 나왔다. 다운로드 API 경우 postman 사용법을 찾아보니 I was trying to create and export .xlsx file with Node.js but whenever press "Send" in postman to check my API, it gave me broken result like below. 아래 사진처럼 "send" 오른쪽 화살표 표시를 누르면 "Send and Download"가 있다. 이걸 눌러주면 파일 다운로드를 어디에 할지 팝업이 뜨고 잘 다운된다. You can press the little arrow just next to the "..
[Javascript/Typescript] Promise returned from forEach argument is ignored 객체 모음의 배열에서 [{}, {}, ...] forEach를 사용하면서 안에 await 를 사용했더니 When I used async/await in forEach, the Error below occurred. [ERROR]: Promise returned from forEach argument is ignored 위 에러가 나왔다. forEach 는 synchronous function을 예상하는데, async function은 프로미스를 반환하고, caller는 반환받은 프로미스 값으로 무언가를 해야할 책임(?)이 있다. 그런데 forEach는 반환값으로 무언가를 하는 적합하지 않아서 (그냥 반환값없이 각각의 ele 요소를 call할 뿐) 그냥 이것을 무시한다. forEach 대신 for문 또는 ..
[TypeScript + Node.js] 새 프로젝트 시작하기 (환경 설정, nodemon, rimraf) TypeScript + Node.js 튜토리얼 ✍🏼 1. 폴더 생성 새 폴더 만들고 webstorm or VSCode로 열기 cd [새폴더 명] - 새로 만든 폴더 경로로 들어가기 2. Setup Node.js package.json npm init -y // -y 옵션을 주면 모든 defaults값을 yes로 하는 것 -> package.json 파일이 자동생성된다. 3. Add TypeScript as a dev dependency npm install typescript --save-dev -> dependency 추가를 하니 package-lock.json 파일이 자동생성된다. typescript 설치 후에, tsc 명령어를 통해 타입스크립트 컴파일러 command line에 접근할 수 있다. 4..
package.json 최신 버전으로 업데이트하기 TypeScript 컴파일 중 /node_modules/mongoose/node_modules/mongodb/mongodb.ts34.d.ts (3688,4): Expression expected. 요런 에러가 많이 났다. package.json 최신 버전으로 한번에 업데이트를 해주니 오류 해결되었다. npm 모듈 버전 확인 npm show [모듈명] version npm 모듈 개별 업데이트 npm update [모듈명] npm package.json 모듈 한번에 업데이트 시키기 npm install -g npm-check-updates 최신버전 확인 ncu 최신버전 업데이트 ncu -u 모듈 설치 npm install
TypeScript 타입스크립트 컴파일 과정 일반 프로그램이 실행되는 과정 1. 프로그래머가 다수의 텍스트 파일을 작성한다. 2. "compiler"라는 특별한 프로그램이 텍스트 파일을 파싱하여 추상 문법 트리 (AST, Abstract Syntax Tree) 자료구조로 변환시킨다. * AST는 공백, 주석, 탭 or 공백 등의 결과를 완전히 무시한다. 3. 컴파일러는 AST를 바이트코드 (bytecode)라는 하위 수준의 표현으로 변환한다. 4. 바이트코드가 만들어졌으면 런타임이라는 다른 프로그램에 바이트코드를 입력해 평가하고 결과를 얻을 수 있다. => 컴파일러가 소스 코드를 파싱해 AST로 만들고 다시 AST를 바이트코드로 변환한 것을 런타임이 평가하도록 지시하는 것 타입스크립트가 실행되는 과정 1. 소스 코드 작성 by 프로그래머 2. 타입..
[TypeScript] interface object 안 objects들 인터페이스, 배열 안 배열의 인터페이스 만들기 오브젝트 안 오브젝트들 인터페이스로 만들기 { name: "test", items: { "a": { id: 1, size: 10 }, "b": { id: 2, size: 34 } } } 위의 items를 인터페이스로 만들 때 [key: key의 type]을 사용한다. 위의 예제를 인터페이스로 작성할 때 아래처럼 작성한다. "a", "b" 는 string이므로 [key: string] 이렇게! export interface Item { id: number; size: number; } export interface Example { name: string; items: { [key: string]: Item }; } [ [ {1:1}, {2:2}, {3:3}, {4:4} ], [ {1:1} ], [ {2:..
[TypeScript] 타입스크립트 설치 및 환경설정 (tsc-watch) 1. Visual Studio Code 새 폴더 열기 2. npm init하기 npm init -> package.json 파일 생김 3. TypeScript 설치 npm install -g typescript https://www.npmjs.com/package/typescript typescript TypeScript is a language for application scale JavaScript development www.npmjs.com 4. index.ts 파일 생성 , tsconfig.json 파일 생성 tsconfig.json 에 환경설정 코드 추가 { "compilerOptions": { "module":"commonjs", // node.js를 평범하게 사용하고 다양한import /..

반응형