@ 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

それは魅力のように働きます
Aditya Kresna Permana

@ShlomiLeviの以前のバージョンを使用する@types/sequelize
Hadad

3
angular 8はtypescript <V3.5でのみ機能します
Ratshi 1aho Wayne

そうです、最近この問題がありました。いくつかの検索を行った後、Githubで問題を解決したため、typescriptのバージョンを3.7.2バージョンにアップグレードする必要がありました。
チアゴヴァレンティム

23

私が持っています 角度8。それは3.4.5のtypescriptバージョンで動作しています。この問題を解決するには、以下の手順に従ってください。

ステップ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に追加)、機能し、nest g ng-appを介して初期化されたアプリでNestJが機能します。
АлексейМедведев

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.