Javascript 28

[TypeScript] 제네릭(Generics) 사용하는 이유

제네릭 사용하는 이유 type Test = { (arr : number[]) : void; (arr : string[]) : void; (arr : boolean[]) : void } const test1 : Test =(arr) => { arr.forEach(a => console.log(a)) } test1([1,2,3,4]) test1(["a","b","c"]) test1([true,false,true]) test1([1,"a",true,"b"]) test1에 새로운 종류의 배열을 넣을때 마다 test타입에 계속 내용을 추가해야는 불편함이 있음 15번째 줄처럼 여러 타입이 오면 처리하기 힘듬 문법 type Test2 = { (arr:T[]) : T } const test2 : Test2 = (arr..

[TypeScript] 오버로딩 (Overloading)

오버로딩(Overloading) 동일한 이름의 함수에 파라미터 개수나, 타입을 다르게 하여 함수를 만드는 것 매개변수의 개수가 같고 타입이 다를 때 type Test1 = { (a:number, b:number) : void (a:string, b:number) : void } const test1:Test1 = (a,b) =>{ if(typeof a ==="string") console.log(a) else return console.log(a+b) } 매개변수의 개수가 다를 때 type Test2 = { (a:number, b:number) : void (a:number, b:number, c:number) : void } const test2:Test2 = (a,b,c?:number) =>{ if(..

[TypeScript] 타입 별칭(Type Aliases), 선택적 타입

타입 별칭(Type Aliases) const name : string = "nick" //타입별칭 사용시 type Name = string; const name : Name = "nick"; //interface 같은 복잡한 타입도 가능 type Customer = { name : string, phone : number } //interface를 만들때는 "=" 이 없음 interface Customer { name : string; age? : number; phone : number; } //제네릭도 가능 type User = { name : T } optional type(선택적 타입) 변수옆에 ?를 붙이면 선택적 타입이 된다 선택적 타입은 명시한 타입 | undefined ex) age의 타입..

[TypeScript] TypeScript 사용하는 이유

사용하는 이유 타입(자료형) 안정성 타입을 지정하기 때문에 컴파일 에러 예방, 순쉬운 디버깅 높은 생산성 여러파일을 살피지 않고 변수의 이름, 데이터의 자료형을 알 수 있음 JavaScript의 슈퍼셋 TypeScript는 JavaScript의 슈퍼셋(특정한 언어의 모든 기능을 포함하면서 다른 기능까지 활용 가능) JavaScript와의 차이 정적 타입 언어 변수의 타입을 지정해서 사용 컴파일 언어 javascript는 인터프리터 언어(한줄 한줄 읽으면서 명령 처리) 단점 초기 세팅의 어려움 기본적으로 설치해야하는 모듈과 옵션 설정 참고: TypeScript 사용하는 이유, 현직 웹 개발가 알려드립니다! I 이랜서 (elancer.co.kr)

[Node.js] mongoose 페이지네이션 구현(pagination)

데이터를 한번에 가져오는게 아니라 나눠서 가져오는것(게시판이나 인스타 게시물) 모듈 설치 npm install mongoose-paginate-v2 model에 내용추가 const mongoosePaginate = require('mongoose-paginate-v2') exampleSchema.plugin(mongoosePaginate) Controller에 내용추가 const index = (req, res, next) => { Example.paginate({}, { page: req.query.page, limit: req.query.limit }) .then(response => { res.json({ response }) }) .catch(error => { res.json({ message:..

Javascript/nodejs 2024.01.02