inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Node.js에 TypeScript 적용하기(feat. NodeBird)

ambient module

ambient module을 활용한 타입 문제 해결시 문제가 발생합니다.

206

mhr

작성한 질문수 52

0

제로초님 안녕하세요. 

영상에서 해결해주신 대로 타입문제를 해결하고 있는데요. 그런데 tsconfig.json을 아래처럼

{
  "compilerOptions": {
    "strict": true,
    "lib": ["es2015", "es2016", "es2017", "es2018", "es2019", "es2020"],
    "moduleResolution": "node",
    "typeRoots": ["./types"]
  },
  "files": ["./index.ts"]
}

  files에 index.ts를 넣으면 같은 에러가 발생합니다. 그리고 저 부분을 제외하면

router.get('/', isLoggedIn, (req , res) => {
  const user = req.user!.toJSON() as User;
  delete user.password;
  return res.json(user);
} )

 위의 코드에서 req.user!.tsJSON()에서는 문제가 안 생기는데, 대신에 delete 다음에 오는 user.password 부분에 "The operand of a 'delete' operator must be optional." 이라는 에러가 뜹니다. 저 user.password의 type definition을 보면 public User.password: string 이라고 나오는데, 모델을 정의하는 부분에서는 password 뒤에 !를 붙였고, User.init 함수 안에서도 alowNull을 false로 설정해서 optional이 올 필요가 없어보이는데도 그렇네요. 강의 중에는 그런 문제가 안 나오는 것 같던데, 혹시 타입스크립트 버전 차이 때문에 그런 것일까요? 현재 4.2.4 버전 사용 중입니다. 

nodejs typescript 웹앱

답변 1

1

제로초(조현영)

네 버전 차이때문이고요. 공지사항 확인해주세요.

'S3' 형식에 'S3Client' 형식의 destroy, middlewareStack, send 속성이 없습니다.ts(2739)

0

505

1

throw new Error(`${this.name}.hasMany called with something that's not a subclass of Sequelize.Model`); 에러 질문

0

341

1

안녕하세요.. connect ECONNREFUSED 127.0.0.1:3306 관련해서 질문드립니다

0

955

1

@types를 dependencies에 넣는 이유?

0

398

1

JS에서 babel 사용시 `import * as` 구문을 안써도되는데, 바벨이 esModuleInterop: true 로 처리해주는 것인가요?

0

318

1

Sequelize Association 오류

0

501

2

Sequelize constructor.primaryKeyAttributes 오류

0

959

1

Sequelize에 요청을 보내면 오류가 뜹니다

0

793

1

강좌에서 사용된 3개의 코드 의미가 궁금합니다 [ 코드 : 1. [ key:string]:string] 2. delete user.password , 3.passport.deserializeUser<number> ]

0

337

1

@mui/x-data-grid 에 사용자정의 컬럼 타입을 추가해서 사용하려고 합니다.

0

2607

1

미들웨어 에러

1

312

1

Could not find a declaration file for mould '../utils/jwt-utils'

1

179

1

마지막에 type과 interface 추가하는 부분

0

217

1

다른 컴퓨터에서 제가 만든 DB 테이블의 데이터를 그대로 사용하려면?

0

282

1

express 모듈 에러 관련

0

235

1

import * as A from 'B'

0

212

1

MySql ssl 보안 옵션 질문 입니다.

0

351

2

passport/index.ts 에러 입니다

1

450

1

routes/post.ts 페이지에서 에러나요..

0

313

1

passport/index.ts 에러납니다...

0

816

1

ts import 에러

0

439

1

타입스크립트로 변환후 nextjs 빌드 후 배포

0

258

1

sequelize include 질문드립니다.!

0

186

1

roperty 'id' does not exist on type 'User'.

0

891

1