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

13

J'ai des milliers de cette erreur après la mise en œuvre initiale, taper dans le terminal ng mon application 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 angulaire avec des erreurs de frappe 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 corrigée.

Mise à jour 1

D'accord, je vais de l'avant. La plupart des erreurs ont disparu, mais j'en ai maintenant quelques-unes, par exemple la première:

ERREUR dans src / app / main / main.component.ts: 143: 63 - erreur TS2322: tapez 'chaîne | undefined 'n'est pas assignable au type' string '. Le type «non défini» n'est pas attribuable au type «chaîne».

143 this.fileService.add ({isFolder: true, nom: 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));
    }
}
xavn-mpt
la source
1
Je voudrais lire ceci - github.com/microsoft/TypeScript/issues/33939 .
Sam
@Sam J'ai lu ceci et rien n'y fait - malheureusement
xavn-mpt
1
Utilisez-vous la version 9.0.0-beta.28de @ angular / flex-layout? J'essaierais de revenir à la version précédente avant de heurter la version TS.
Sam
@Sam j'ai changé dans package.json pour une version plus ancienne et stil ont le même problème après avoir supprimé node_modules, package-lock.json et réinstallé le tout.
xavn-mpt
@Sam en ce moment, il 8.0.0-beta.27
xavn-mpt

Réponses:

16

J'ai eu ce même problème, et ces 2 commandes m'ont sauvé la vie. Mon problème sous-jacent est que je me trompe toujours avec l'installation globale et l'installation locale. Peut-être que vous êtes confronté à un problème similaire, et j'espère que l'exécution de ces commandes résoudra également votre problème.

ng update --next @angular/cli --force
npm install typescript@latest
Leon Grin
la source
CA marchait bien pour moi.
c'est le
2
cela fonctionne pour moi. mais je dois rétrograder ma version dactylographiée à 3.6.x. au-dessus de 3.8.0 ne fonctionne pas et renvoie une erreur.
Hardik Patel
12

La mise "skipLibCheck": trueen place a tsconfig.jsonrésolu mon problème

"compilerOptions": {
    "skipLibCheck": true
}
VRK
la source
1
Cela a également fonctionné pour moi et je pense que c'est bien pour un POC ou un exemple de projet, mais un autre fil discute des inconvénients potentiels de le faire en général: stackoverflow.com/questions/52311779/…
ewomack
c'est du travail pour moi, après de nombreuses tentatives, j'ai enfin commencé mon projet de démonstration metronic. Merci!
JMSamudio
7

J'ai eu le même problème lors de l'ajout de @ angular / flex-layout à mon projet Angular 8 maintenant avec

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

Depuis, cette commande a installé la 9ème version majeure du package flex-layout. Au lieu de mettre à niveau tout le reste vers la dernière version, je l'ai résolu en installant la dernière 8e version principale du package à la place.

 npm install @angular/flex-layout@8.0.0-beta.27 --save
Atle
la source
2

Il semble que vous ayez récemment installé le package flex-layout. Essayez de supprimer ce dossier de package de votre dossier node_modules et de réinstaller la version précédente de ce package.

Récemment (2 jours avant la date actuelle), angular a publié la dernière version angular-cli (v9.0.1) en raison de laquelle de nombreux packages sont mis à jour pour prendre en charge cette dernière version cli. Dans votre cas, vous pourriez avoir l'ancienne version de cli et lorsque vous avez installé ce package, il a été téléchargé par défaut pour la dernière version de cli. Essayez donc de rétrograder la version de votre package. A travaillé pour moi au moins.

N'oubliez pas non plus de rétrograder la version de votre package dans le fichier package.json

Hassan Raza
la source
2

essayer

ng update @angular/core @angular/cli

Ensuite, juste pour synchroniser le matériel, exécutez:

ng update @angular/material
Mohammed Raja
la source
2

Dans mon cas, la rétrogradation de @ angular / animations a fonctionné, si vous pouvez vous le permettre, exécutez la commande

npm i @angular/animations@6.1.10

Ou utilisez une autre version qui pourrait fonctionner pour vous à partir de l'onglet Versions ici: https://www.npmjs.com/package/@angular/animations

Claudio Teles
la source
2

Solution rapide: mettez à jour package.json

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

Dans tsconfig.json

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

puis supprimez le dossier node_modules et réinstallez avec

installation de npm

Pour plus de visite ici

Daniel R.
la source
0

c'est une brève réponse que j'espère aider

Essayez de rétrograder l'Agular et Angular-CLI vers la v8, je pense que votre problème est un problème de compatibilité des packages

AbuDawood
la source
0

Je pense que votre problème est né de la non-concordance de la typographie et de la version du module. Ce problème est très similaire à votre question et les réponses sont très satisfaisantes.

Croc blanc
la source