TS1086: Um acessador não pode ser declarado no contexto do ambiente

13

Eu tenho milhares deste erro após a implementação inicial e digitação no terminal ng serve o meu aplicativo de e não consigo resolvê-lo. Esta é a primeira vez para mim quando eu tenho um problema como este dentro do angular com erros de texto datilografado:

ERRO no ../../node_modules/@angular/flex-layout/core/typings/base/base2.d.ts:24:19 - erro TS1086: Um acessador não pode ser declarado em um contexto ambiental.

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

- erro TS1086: Um acessador não pode ser declarado em um contexto de ambiente.

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

- erro TS1086: Um acessador não pode ser declarado em um contexto de ambiente.

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

- erro TS1086: Um acessador não pode ser declarado em um contexto de ambiente.

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

- erro TS1086: Um acessador não pode ser declarado em um contexto de ambiente. [...]

Alguém sabe um motivo? Não posso testar meu aplicativo até corrigi-lo.

Atualização 1

Ok, eu faço isso para a frente. A maioria dos erros se foi, mas agora tenho alguns, por exemplo, o primeiro deles:

ERRO no src / app / main / main.component.ts: 143: 63 - erro TS2322: Digite 'string | undefined 'não é atribuível ao tipo' string '. O tipo 'undefined' não pode ser atribuído ao tipo 'string'.

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

O código fica assim:

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
fonte
11
Gostaria de ler isso - github.com/microsoft/TypeScript/issues/33939 .
Sam
@ Sam eu li isso e nada ajuda - infelizmente
xavn-mpt
11
Você está usando a versão 9.0.0-beta.28do @ angular / flex-layout? Eu tentaria reverter para a versão anterior antes que eles colidissem com a versão TS.
Sam
@ Sam Eu mudei no package.json para a versão mais antiga e ainda tenho o mesmo problema depois de excluir node_modules, package-lock.json e instalar tudo novamente.
xavn-mpt
@Sam neste momento 8.0.0-beta.27
xavn-mpt

Respostas:

16

Eu tive esse mesmo problema e esses dois comandos salvaram minha vida. Meu problema subjacente é que eu estou sempre bagunçando a instalação global e a instalação local. Talvez você esteja enfrentando um problema semelhante, e esperamos que a execução desses comandos também resolva o problema.

ng update --next @angular/cli --force
npm install typescript@latest
Leon Grin
fonte
Isso funcionou bem pra mim.
este é yash
2
isso funciona para mim. mas eu tenho que fazer o downgrade da minha versão datilografada para 3.6.x. acima de 3.8.0 não está funcionando e gera erro.
Hardik Patel
12

Definir "skipLibCheck": trueem tsconfig.jsonresolveu meu problema

"compilerOptions": {
    "skipLibCheck": true
}
VRK
fonte
11
Isso também funcionou para mim e acho que é bom para um POC ou um projeto de amostra, mas outro segmento discute as possíveis desvantagens de fazer isso em geral: stackoverflow.com/questions/52311779/…
ewomack
isso é um trabalho para mim, depois de muitas tentativas, finalmente comecei meu projeto de demonstração metrônica. Obrigado!
JMSamudio 23/04
7

Eu tive o mesmo problema ao adicionar @ angular / flex-layout ao meu projeto Angular 8 agora com

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

Desde então, esse comando instalou a 9ª versão principal do pacote de layout flexível. Em vez de atualizar todo o resto para a última versão, resolvi instalando a última oitava versão principal do pacote .

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

Parece que você instalou recentemente o pacote de layout flexível. Tente remover esta pasta do pacote da pasta node_modules e reinstalar a versão anterior deste pacote.

Recentemente (2 dias antes da data atual), a angular lançou a versão mais recente do angular-cli (v9.0.1), devido à qual muitos pacotes são atualizados para suportar esta última versão do cli. No seu caso, você pode ter a versão cli antiga e, quando instalou este pacote, ele foi baixado para a versão mais recente do cli por padrão. Portanto, tente fazer o downgrade da sua versão do pacote. Trabalhou para mim pelo menos.

Além disso, não se esqueça de fazer o downgrade da versão do seu pacote no arquivo package.json

Hassan Raza
fonte
2

tentar

ng update @angular/core @angular/cli

Depois, apenas para sincronizar o material, execute:

ng update @angular/material
Mohammed Raja
fonte
2

No meu caso, fazer o downgrade de @ angular / animations funcionou; se você puder fazer isso, execute o comando

npm i @angular/animations@6.1.10

Ou use outra versão que possa funcionar para você na guia Versões aqui: https://www.npmjs.com/package/@angular/animations

Claudio Teles
fonte
2

Solução rápida: Atualize package.json

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

Em tsconfig.json

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

remova a pasta node_modules e reinstale com

instalação npm

Para mais visita aqui

Daniel R.
fonte
0

esta é uma resposta breve que espero ajudar

Tente fazer o downgrade do Agular e do Angular-CLI para a v8, acho que seu problema é um problema de compatibilidade de pacotes

AbuDawood
fonte
0

Acho que seu problema surgiu da incompatibilidade de versão datilografada e de módulo. Esse problema é muito semelhante à sua pergunta e as respostas são muito satisfatórias.

presa branca
fonte