JavaScript Destructuring 구조 분해 할당 JavaScript Destructuring 구조 분해 할당 객체/배열을 분해하여 변수로 사용할 수 있게 해준다. 분해(Destructuring)는 파괴(Destructive)를 의미하지 않는다. 객체나 배열을 복사 후 변수로 분해 해준다는 의미다. 객체 구조 분해 - 중괄호 안 상수로 사용할 이름은 임의로 작성한다. 배열 구조 분해 - 대괄호 안 상수로 사용할 이름은 임의로 작성한다. - 콤마로 일부 반환값을 무시할 수 있다. 언어/자바스크립트 2022.06.10
TypeError: Class constructor Model cannot be invoked without 'new' TypeError: Class constructor Model cannot be invoked without 'new' - new 없이 클래스 모델을 호출할 수 없습니다. - 검색 결과 클래스 문법은 최신이므로 컴파일러 옵션 target에 "ES6"를 추가해 주자 기타/에러 2022.06.06
JavaScript Array.isArray JavaScript Array.isArray 메서드 인자가 배열인지 판별 후 boolean을 반환한다. const arr = [1, 2, 3, 4, 5]; if (Array.isArray(arr)) { console.log(true); } const req = { files: ["filename", "createdAt"], }; if (!Array.isArray(req)) { console.log(false); } if (Array.isArray(req.files)) { console.log(true); } 언어/자바스크립트 2022.06.05
TIL 220602 TIL 220602 내부적으로 타입을 지원하지 않는 노드 라이브러리들이 많다. 그러므로 d.ts 파일을 생성하여 커스텀 타입을 만들어야 하는데 아직 완벽하게 이해가 가지 않는다. declare와 tsconfig에 옵션들에 관해서 조금 더 자세하게 공부해야겠다. 모르는 개념이 나오면 차분하게 생각해야 하는데 이 문제로 이번엔 몇 시간을 붙잡고 있을까라는 분노가 먼저 차오른다. 에러는 괜히 발생하는 게 아닌 게 알면서도 버그일까 하는 생각이 든다. 자바스크립트 환경에 익숙해져서 아직 적응이 안 되지만 어차피 타입스크립트를 한번 사용하면 쭉 타입스크립트만 사용할 수 있으니 긍정적인 마음가짐으로 침착하게 공부하자. 기타/회고 2022.06.02
augmentations for the global scope can only be directly nested in external modules ts(2669) augmentations for the global scope can only be directly nested in external modules ts(2669) - declare global 사용 시 external/ambient 모듈 둘 중 하나를 사용해야 한다. - 실제 사용 할 모듈을 불러오거나 export {} 등을 사용하여 import/export 둘 중 하나를 선언해야한다. 기타/에러 2022.06.02
TIL 220601 TIL 220601 오늘은 6월 1일이다. 오전에 투표와 운동을 하고 오후부터 공부했다. 어제 서버 설정과 폴더 구조를 잡았고 오늘은 시퀄라이즈를 통해 테이블을 만들었는데 기존 자바스크립트 환경에서는 sequelize-cli 명령어를 통해 간단하게 기본 틀을 만들 수 있었는데 타입스크립트 환경에서는 조금 달랐다. 기본적으로 시퀄라이즈는 내부적으로 타입을 지원하여 타입 시퀄라이즈 라이브러리를 별도로 설치하지 않아도 되고 런타임 속성에 의존하므로 타입스크립트를 바로 사용할 수 없다. 모델 생성과 로직을 생성하려면 상당히 많은 수동 설정이 필요했다. 시퀄라이즈 공식 문서에 타입스크립트 관련 자료가 자세하게 나와있는 거 같지만 아직 공식 문서를 참고하여 공부하는 게 익숙하지 않아 설정하는데도 참 많은 시간이 걸.. 기타/회고 2022.06.01
TIL 220530 TIL 220530 주말 동안 남아있던 타입스크립트 강의를 마무리하고 오늘부터 노드에 타입스크립트를 적용 한 간단한 토이 프로젝트를 만들고 있다. 기능으로는 회원가입 로그인 게시판정도 될 거 같다. 현재 타입스크립트는 4버전인데 참고할 만한 자료들은 대부분 3버전을 사용하고 있어 일단 3버전 사용 후 완성하고 나서 공식 문서를 참고해 4버전으로 리팩토링 할 예정이다. 이번에 공부하면서 유지 보수와 가독성이 좋지 않아도 서버는 안정성이 매우 중요하다는 걸 다시 한번 생각했다. 기타/회고 2022.05.30
TypeScript 유틸리티 타입 TypeScript 유틸리티 타입 전역으로 사용 가능한 공통 타입 변환을 하기 위한 편의 기능의 집합이다. 중복 코드와 반복적인 행동을 피할 수 있게 해준다. partial - T의 모든 속성을 선택적 타입으로 구성한다. - User 인터페이스 속성 중 일부만 사용할 수 있다. Readonly - 인터페이스 생성 시 속성 앞 "readonly" 키워드를 한 번에 붙여주는 기능이다. Pick - T의 속성을 선택해 K의 새로운 타입으로 구성한다. Record - T의 프로퍼티 집합 K로 타입을 구성한다. 원하는 타입의 속성을 다른 타입에 매핑 시킬 수 있다. Omit - T의 모든 속성을 선택 후 K의 속성을 제거한 나머지 타입을 구성한다. ReturnType - T 함수의 반환 타입으로 구성된 타입을 만.. 언어/타입스크립트 2022.05.29
TIL 220529 TIL 220529 저번 주부터 시작했던 타입스크립트 기본 개념 공부의 끝이 보인다. 유틸리티와 데코레이터만 배우면 끝이다. 계획대로라면 이번 주 수요일에 끝났어야 했는데 가족 모임과 개인 사정으로 완료일이 많이 미루어졌다. 처음 타입스크립트 공부는 제로초님 웹 게임 타입스크립트 강의로 공부했는데 듣다 보니 부족한 거 같아 주변 추천과 수강 후기를보고 캡틴판교님 타입스크립트 입문 강의를 추가로 공부했다. 각 강의마다 일장일단이 있어 결론적으로 만족한다. 개인적으로 요새 많이 나태해졌다. 취업 준비 기간 동안 예정에 없던 프리랜서 일을 겸하고 있다지만 정말 진지하게 고민해 보니 핑계다. 수면과 개인 시간을 줄여 공부 할 시간을 만들어야 하는데 그러지 못하고 있다. 집중력도 저번 달이랑 비교하니 현저히 떨어.. 기타/회고 2022.05.29
JavaScript ES Modules(ESM ES6) JavaScript ES Modules 모듈이란 여러 기능(함수/변수 등)이 모여있는 하나의 파일이다. 모듈화를 통해 유지 보수와 재사용성을 높일 수 있다. ES 모듈은 기본적으로 strict 모드가 적용되며 번들링 시 파일 용량이 커지지 않는다. CJS(CommonJS) 모듈은 직접 strict 모드를 걸어주어야 하고 번들링 시 파일이 커지는 단점이 있다. 번들링 자바스크립트를 공부하다 보면서 번들링이라는 단어를 자주 접하게 되었다. 번들이란 단어의 의미는 묶음이다. 번들링의 프로그래밍적 해석은 각 모듈들의 의존성 관계를 파악해 그룹화 시키는 작업이다. 모듈과 스크립트 구분 - import / export가 있으면 모듈 없으면 스크립트 // 스크립트 // 모듈 exprt "" import "" from.. 언어/자바스크립트 2022.05.28