TS1086: un accessor non può essere dichiarato in un contesto ambientale


13

Ho migliaia di questo errore dopo l'implementazione iniziale e digitando nel terminale ng servire la mia-app di e non riesco a risolverlo. Questa è la prima volta per me quando ho problemi come questo all'interno di Angular with Typescript Error:

ERRORE in ../../node_modules/@angular/flex-layout/core/typings/base/base2.d.ts:24:19 - errore TS1086: un accessor non può essere dichiarato in un contesto ambientale.

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

- errore TS1086: un accessor non può essere dichiarato in un contesto ambientale.

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

- errore TS1086: un accessor non può essere dichiarato in un contesto ambientale.

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

- errore TS1086: un accessor non può essere dichiarato in un contesto ambientale.

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

- errore TS1086: un accessor non può essere dichiarato in un contesto ambientale. [...]

Qualcuno sa un motivo? Non riesco a testare la mia app fino a quando non la aggiusto.

Aggiornamento 1

Va bene, lo faccio avanti. La maggior parte degli errori è sparita, ma ora ne ho alcuni, ad esempio prima di essi:

ERRORE in src / app / main / main.component.ts: 143: 63 - errore TS2322: digitare 'stringa | undefined 'non è assegnabile al tipo' string '. Digitare 'undefined' non è assegnabile al tipo 'string'.

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

Il codice è simile al seguente:

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));
    }
}


@Sam Ho letto questo e niente aiuta - purtroppo
xavn-mpt il

1
Stai usando la versione 9.0.0-beta.28di @ angular / flex-layout? Vorrei provare a tornare alla versione precedente prima che si imbattessero nella versione TS.
Sam

@Sam ho cambiato in package.json alla versione precedente e stil hanno lo stesso problema dopo aver eliminato node_modules, package-lock.json e aver reinstallato tutto.
xavn-mpt,

@Sam in questo momento 8.0.0-beta.27
xavn-mpt

Risposte:


16

Ho avuto lo stesso problema e questi 2 comandi mi hanno salvato la vita. Il mio problema di fondo è che mi sbaglio sempre con l'installazione globale e l'installazione locale. Forse stai affrontando un problema simile e, si spera, l'esecuzione di questi comandi risolverà anche il tuo problema.

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

Questo ha funzionato bene per me.
Questo è yash il

2
questo funziona per me. ma devo effettuare il downgrade della mia versione dattiloscritta a 3.6.x. sopra 3.8.0 non funziona e genera errore.
Hardik Patel

12

Impostazione "skipLibCheck": truein tsconfig.jsonrisolto il mio problema

"compilerOptions": {
    "skipLibCheck": true
}

1
Anche questo ha funzionato per me e penso che sia bene per un POC o di un progetto di esempio, ma un altro thread discute i potenziali svantaggi di fare questo in generale: stackoverflow.com/questions/52311779/...
ewomack

questo è un lavoro per me, dopo molti tentativi ho finalmente iniziato il mio progetto demo metronico. Grazie!
JMSamudio,

7

Ho avuto lo stesso problema aggiungendo @ angular / flex-layout al mio progetto Angular 8 ora con

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

Questo da quel momento quel comando ha installato la nona versione principale del pacchetto flex-layout. Invece di aggiornare tutto il resto all'ultima versione, l'ho risolto installando invece l'ultima ottava versione principale del pacchetto .

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

2

Sembra che tu abbia installato di recente un pacchetto di layout flessibile. Prova a rimuovere questa cartella del pacchetto dalla cartella node_modules e a reinstallare la versione precedente di questo pacchetto.

Di recente (2 giorni prima della data corrente), angular ha rilasciato l'ultima versione di angular-cli (v9.0.1) a causa della quale molti pacchetti sono stati aggiornati per supportare quest'ultima versione di cli. Nel tuo caso potresti avere una vecchia versione di cli e quando hai installato questo pacchetto è stato scaricato per impostazione predefinita per l'ultima versione di cli. Quindi prova a eseguire il downgrade della versione del pacchetto. Ha funzionato per me almeno.

Inoltre, non dimenticare di effettuare il downgrade della versione del pacchetto nel file package.json


2

provare

ng update @angular/core @angular/cli

Quindi, solo per sincronizzare il materiale, esegui:

ng update @angular/material


2

Soluzione rapida: aggiornamento package.json

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

In tsconfig.json

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

quindi rimuovere la cartella node_modules e reinstallarla con

npm install

Per più visita qui


0

questa è una breve risposta che spero di aiutare

Prova a eseguire il downgrade della CLI Agular e Angular alla v8, penso che il tuo problema sia un problema di compatibilità dei pacchetti


0

Penso che il tuo problema sia emerso dalla mancata corrispondenza di dattiloscritto e versione del modulo. Questo problema è molto simile alla tua domanda e le risposte sono molto soddisfacenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.