TS1086:アクセサーはアンビエントコンテキストでは宣言できません


13

最初の実装後、ターミナルng serve my-appに入力した後、何千ものこのエラーが発生し、解決できません。typescript Errorsを使用してこのような角度の内側に問題があるとき、これは私にとって初めてです:

../../node_modules/@angular/flex-layout/core/typings/base/base2.d.ts:24:19のエラー-エラーTS1086:アンサーコンテキストでアクセサーを宣言できません。

24     protected get parentElement(): HTMLElement | null;
                     ~~~~~~~~~~~~~
../../node_modules/@angular/flex-layout/core/typings/base/base2.d.ts:26:19

-エラーTS1086:アンビエントコンテキストではアクセサーを宣言できません。

26     protected get nativeElement(): HTMLElement;
                     ~~~~~~~~~~~~~
../../node_modules/@angular/flex-layout/core/typings/base/base2.d.ts:28:9

-エラーTS1086:アンビエントコンテキストではアクセサーを宣言できません。

28     get activatedValue(): string;
           ~~~~~~~~~~~~~~
../../node_modules/@angular/flex-layout/core/typings/base/base2.d.ts:29:9

-エラーTS1086:アンビエントコンテキストではアクセサーを宣言できません。

29     set activatedValue(value: string);
           ~~~~~~~~~~~~~~
../../node_modules/@angular/flex-layout/core/typings/breakpoints/break-point-registry.d.ts:20:9

-エラーTS1086:アンビエントコンテキストではアクセサーを宣言できません。 [...]

誰かが理由を知っていますか?修正するまでアプリをテストできません。

アップデート1

さて、私はそれを前進させます。ほとんどのエラーはなくなりましたが、今はいくつかあります。たとえば、最初にエラーが発生します。

src / app / main / main.component.ts:143:63のエラー-エラーTS2322:タイプ 'string | undefinedはタイプ 'string'に割り当てることができません。タイプ「未定義」はタイプ「文字列」に割り当てることができません。

143 this.fileService.add({isFolder:true、name:folder.name、parent:this.currentRoot?this.currentRoot.id: 'root'});

コードは次のようになります。

main.component.ts:

currentRoot: MpFileElement = new MpFileElement();
...
    addFolder(folder: { name: string }) {
        this.fileService.add({ isFolder: true, name: folder.name, parent: 
    this.currentRoot ? this.currentRoot.id : 'root' });
        this.updateFileElementQuery();
    }
...

file.service.ts:

import { Injectable } from '@angular/core';

import { v4 } from 'uuid';
import { MpFileElement } from '../models/mp-file-element.model';
import { Observable } from 'rxjs/internal/Observable';
import { BehaviorSubject } from 'rxjs';

export interface IFileService {
    add(fileElement: MpFileElement);
    delete(id: string);
    update(id: string, update: Partial<MpFileElement>);
    queryInFolder(folderId: string): Observable<MpFileElement[]>;
    get(id: string): MpFileElement;
}

@Injectable()
export class MpFileService implements IFileService {

    constructor() {}
    private map = new Map<string, MpFileElement>()

    private querySubject: BehaviorSubject<MpFileElement[]>;

    add(fileElement: MpFileElement) {
        fileElement.id = v4();
        this.map.set(fileElement.id, this.clone(fileElement));
        return fileElement;
    }

    delete(id: string) {
        this.map.delete(id);
    }

    update(id: string, update: Partial<MpFileElement>) {
        let element = this.map.get(id);
        element = Object.assign(element, update);
        this.map.set(element.id, element);
    }
    queryInFolder(folderId: string) {
        const result: MpFileElement[] = [];
        this.map.forEach(element => {
            if (element.parent === folderId) {
                result.push(this.clone(element));
            }
        })
        if (!this.querySubject) {
            this.querySubject = new BehaviorSubject(result);
        } else {
            this.querySubject.next(result);
        }
        return this.querySubject.asObservable();
    }

    get(id: string) {
        return this.map.get(id);
    }

    clone(element: MpFileElement) {
        return JSON.parse(JSON.stringify(element));
    }
}

1
私はこれを読むでしょう-github.com/microsoft/TypeScript/issues/33939
サム

@Sam私はこれを読んで何の助けにもなりません-悲しいことに
xavn-mpt

1
9.0.0-beta.28@ angular / flex-layoutのバージョンを使用していますか?TSバージョンにぶつかる前に、以前のバージョンにロールバックしてみます。
サム

@Samは、package.jsonを古いバージョンに変更しましたが、node_modules、package-lock.jsonを削除してすべてを再インストールした後も同じ問題が発生します。
xavn-mpt

@Sam現時点では8.0.0-beta.27
xavn-mpt

回答:


16

これと同じ問題があり、これら2つのコマンドで私の命が救われました。私の根本的な問題は、私は常にグローバルインストールとローカルインストールをめちゃくちゃにしていることです。たぶんあなたは同様の問題に直面していて、うまくいけばこれらのコマンドを実行するとあなたの問題も解決するでしょう。

ng update --next @angular/cli --force
npm install typescript@latest

これは私にとってはうまくいきました。
これは

2
これは私にとってはうまくいきます。typescriptのバージョンを3.6.xにダウングレードする必要があります。3.8.0以上では機能せず、エラーがスローされます。
Hardik Patel

11

設定"skipLibCheck": truetsconfig.json解決私の問題

"compilerOptions": {
    "skipLibCheck": true
}

1
また、これは私のために働いたと私はPOCまたはサンプルプロジェクトのためのそれの罰金だと思いますが、別のスレッドは、一般的にこれを行う可能性のある欠点について説明します。stackoverflow.com/questions/52311779/...
ewomack

これは私にとっては仕事です。多くの試みの後、ようやくメトロニックデモプロジェクトを開始しました。ありがとう!
JMSamudio

7

@ angular / flex-layoutをAngular 8プロジェクトに追加すると同じ問題が発生しました

`npm install @angular/flex-layout --save`.

これ以降、このコマンドはflex-layoutパッケージのメジャー9番目のバージョンをインストールしました。他のすべてを最新バージョンにアップグレードする代わりに、パッケージの最後の8番目のメジャーバージョンをインストールすることで解決しました。

 npm install @angular/flex-layout@8.0.0-beta.27 --save

2

最近flex-layoutパッケージをインストールしたようです。このパッケージフォルダーをnode_modulesフォルダーから削除して、このパッケージの以前のバージョンを再インストールしてください。

最近(現在の日付の2日前)、angleは最新のangular-cliバージョン(v9.0.1)をリリースしたため、この最新のcliバージョンをサポートするために多くのパッケージが更新されています。あなたの場合、古いcliバージョンがあり、このパッケージをインストールすると、デフォルトで最新のcliバージョン用にダウンロードされました。したがって、パッケージのバージョンをダウングレードしてみてください。少なくとも私のために働いた。

また、package.jsonファイルでパッケージのバージョンをダウングレードすることを忘れないでください


2

試す

ng update @angular/core @angular/cli

次に、資料を同期するために、以下を実行します。

ng update @angular/material

2

私の場合、@ angular / animationsのダウングレードは機能しましたが、それが可能であれば、次のコマンドを実行します。

npm i @angular/animations@6.1.10

または、https://www.npmjs.com/package/@angular/animationsの[バージョン]タブから機能する別のバージョンを使用して ください。


2

クイックソリューション:package.jsonを更新する

"devDependencies": {
   ...
   "typescript": "~3.7.4",
 }

tsconfig.json内

{
    ...,
    "angularCompilerOptions": {
       ...,
       "disableTypeScriptVersionCheck": true
    }
}

次に、node_modulesフォルダーを削除し、

npmインストール

詳細はこちら


0

これは私が助けたいと思っている簡単な答えです

AgularおよびAngular-CLIをv8にダウングレードしてみてください。問題はパッケージの互換性の問題だと思います


0

あなたの問題はtypescriptとモジュールのバージョンの不一致から生じたと思います。この問題は質問とよく似ており、回答は非常に満足のいくものです。

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