web-dev-qa-db-fra.com

TS1086: Un accesseur ne peut pas être déclaré dans un contexte ambiant

J'ai des milliers de cette erreur après la mise en œuvre initiale et la saisie dans le terminal ng serve my-app of et je ne peux pas le résoudre. C'est la première fois pour moi quand j'ai un problème comme celui-ci à l'intérieur angular avec des erreurs TypeScript ressemble à ceci:

ERREUR dans ../../node_modules/@angular/flex-layout/core/typings/base/base2.d.ts:24:19 - erreur TS1086: un accesseur ne peut pas être déclaré dans un contexte ambiant.

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

- erreur TS1086: un accesseur ne peut pas être déclaré dans un contexte ambiant.

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

- erreur TS1086: un accesseur ne peut pas être déclaré dans un contexte ambiant.

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

- erreur TS1086: un accesseur ne peut pas être déclaré dans un contexte ambiant.

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

- erreur TS1086: un accesseur ne peut pas être déclaré dans un contexte ambiant. [...]

Quelqu'un connaît-il une raison? Je ne peux pas tester mon application tant que je ne l'ai pas réparée.

Mise à jour 1

D'accord, je le fais avancer. La plupart des erreurs ont disparu, mais j'en ai peu maintenant, par exemple la première d'entre elles:

ERREUR dans src/app/main/main.component.ts: 143: 63 - erreur TS2322: Tapez la chaîne | undefined 'n'est pas attribuable au type' string '. Le type "non défini" ne peut pas être affecté au type "chaîne".

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

Le code ressemble à ceci:

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));
    }
}
31
xavn-mpt

Je travaillais sur un nouveau projet et j'ai eu le même type de problème. Je viens de courir ng update --all et mon problème a été résolu.

0
Mohammad Anas

Dans mon cas, non-concordance de la version de deux bibliothèques.

J'utilise angular 7.0. et installé

"@swimlane/ngx-dnd": "^8.0.0"

et cela a causé le problème. Rétablissement de cette bibliothèque en

"@swimlane/ngx-dnd": "6.0.0"

travaillé pour moi.

0
Sunil Garg