@ Types / Sequelize 오류 TS1086 : 주변 컨텍스트에서 접근자를 선언 할 수 없습니다


10

'tsc'를 실행할 때이 오류를 표시하는 프로젝트가 있습니다.

../modules/node_modules/sequelize/types/lib/transaction.d.ts:33:14 - error TS1086: An accessor cannot be declared in an ambient context.

33   static get LOCK(): LOCK;
                ~~~~

../modules/node_modules/sequelize/types/lib/transaction.d.ts:40:7 - error TS1086: An accessor cannot be declared in an ambient context.

40   get LOCK(): LOCK;
         ~~~~

내 버전은 다음과 같습니다

  • "@ types / sequelize": "^ 4.28.6"
  • "sequelize": "^ 5.8.10"
  • "sequelize-typescript": "1.0.0-beta.4"

프로젝트는 nodemon과 잘 작동하지만 typescript를 컴파일하려고하면 실패합니다. 누구나이 오류를 알고 있습니까?

감사.

답변:


13

typescript 3.7을 사용해야합니다.

typescript 3.7 릴리스 정보 :

To detect the issue around accessors, TypeScript 3.7 will now emit get/set accessors in .d.ts files so that in TypeScript can check for overridden accessors.

아마도 sequelizetypescript 3.7로 컴파일되었고 이전 버전이 이해하지 못하는 정의 파일을 내 보냅니다. 따라서 typescript 3.7로 업그레이드하거나 이전 버전의 sequelize를 사용해야합니다.


3.7로 업그레이드 할 수 없으면 어떻게합니까? 다른 아이디어가 있습니까?
Shlomi Levi 2014

그것은 마법처럼 작동합니다
아 디트 크레스 Permana에게

@ShlomiLevi 이전 버전 사용@types/sequelize
Aviad Hadad

3
angular 8은 typescript <V3.5
Ratshiḓaho Wayne

맞습니다. 최근 에이 문제가 있었고 일부 검색 후 Github에서 닫힌 문제를 발견 했으므로 문제를 해결하려면 typescript 버전을 3.7.2 버전으로 업그레이드해야했습니다.
티아고 발렌 팀

23

나는이 각도 8 . typescript 버전 3.4.5로 작업 중입니다. 이 문제를 해결하려면 아래 단계를 수행하십시오.

1 단계) tsconfig.json 파일 로 이동

2 단계) "compilerOptions"오브젝트에 skipLibCheck : true 를 추가하십시오 . 그것은 나를 위해 작동합니다.

"compilerOptions": {
    "module": "commonjs",
    "moduleResolution": "node",
    "strict": true,
    "target": "es5",
    "declaration": true,
    "declarationDir": "dist-debug/",
    "skipLibCheck": true, /// Needs to be true to fix wrong alias types being used

  },

감사. "skipLibCheck": true (NestJ와 관련된 tsconfig에 추가됨), 중첩 된 앱을 통해 초기화 된 앱과 NestJ가 작동했습니다.
Алексей Медведев

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.