문제 묵혀둔 Next.js 게시판 프로젝트를 고치면서 첫 todo는 바로 any 타입 고치기였다. 온갖 구글링을 통해 제공되는 타입 설정 까지는 어떻게든 해냈는데 도저히 무엇이 문제인지 모르겠는 타입 설정이 하나 있었다. 해당 에러 메세지는 변수 posts가 타입 WithId []가 타입 Post []에 할당될 수 없다고 뜬다. 그러니까 await db~ 로 출력된 결괏값이 WithId [] 타입이고 그 값을 할당하려는 변수 타입을 Post []로 설정해 주어 생긴 타입호환성 오류였다. 해결 그렇다면 출력된 결과 값을 Post로 설정해 주면 해결되는데 제네릭에 대한 이해가 부족했던 나는 한참을 헤맸다. 제네릭은 타입을 마치 함수의 파라미터 처럼 사용하는것을 의미한다. MongoDB에서 'post'로 정의..
요약 Type Alias는 모든 타입을 선언할 때 사용할 수 있고 Interface는 객체에 대한 타입을 선언할 때 사용될 수 있다. 차이점은 확장 가능 여부이며 확장 불가능한 타입 선언시 Type Alias를 확장 가능한 타입 선언시 Interface를 사용한다. 설명 사실 제일 최근 프로젝트를 하면서 type alias는 모든 타입을 선언할 때 사용할 수 있어서 거의 모든 객체 데이터 타입을 type alias로 설정해주었습니다. //interface interface Person { name: string, age?: number } const person = {} as Person; person.name = 'Kim'; person.age = 25; person.address = 'Seoul'; ..
TypeScript 프로젝트 환경 설정 1. 프로젝트 폴더 생성 mkdir (폴더명) cd (폴더명) 2. 프로젝트 초기화 npm init -y 3. 타입스크립트 설치 npm install typescript --save-dev 4. 루트 디렉토리에 tsconfig.json 파일 생성 후 아래 코드작성 { "compilerOptions": { //컴파일러옵션설정 "target": "es6", "module": "commonjs", "sourceMap": true, "outDir": "./dist" }, "include": [ //TypeScript 파일 경로 src외에서 파일생성시 오류난다 "src/**/*" ] } 5. src 폴더에 index.ts 파일 만들어 TypeScript 코드 작성해보기 기본..