TS1086: Akcesorium nie można zadeklarować w kontekście otoczenia


13

Mam tysiące tego błędu po początkowej implementacji i wpisaniu w terminalu ng obsługiwać mojej aplikacji i nie mogę go rozwiązać. To pierwszy raz, kiedy mam taki problem wewnątrz kątowy z błędami maszynopisu wygląda następująco:

BŁĄD w ../../node_modules/@angular/flex-layout/core/typings/base/base2.d.ts:24:19 - błąd TS1086: Nie można zadeklarować akcesorium w kontekście otoczenia.

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

- błąd TS1086: Akcesorium nie można zadeklarować w kontekście otoczenia.

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

- błąd TS1086: Akcesorium nie można zadeklarować w kontekście otoczenia.

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

- błąd TS1086: Akcesorium nie można zadeklarować w kontekście otoczenia.

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

- błąd TS1086: Akcesorium nie można zadeklarować w kontekście otoczenia. [...]

Czy ktoś zna powód? Nie mogę przetestować aplikacji, dopóki jej nie naprawię.

Aktualizacja 1

Dobra, robię to do przodu. Większość błędów zniknęła, ale mam ich teraz kilka, na przykład pierwszy:

BŁĄD w src / app / main / main.component.ts: 143: 63 - błąd TS2322: Wpisz ciąg znaków | undefined ”nie można przypisać„ string ”. Wpisz „undefined” nie można przypisać do „string”.

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

Kod wygląda następująco:

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

plik.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 Przeczytałem to i nic nie pomaga - niestety
xavn-mpt

1
Czy używasz wersji 9.0.0-beta.28@ angular / flex-layout? Spróbuję przywrócić poprzednią wersję, zanim zderzą się z wersją TS.
Sam

@Sam zmieniłem w pakiet.json na starszą wersję i nadal mam ten sam problem po usunięciu modułów node_module, package-lock.json i ponownej instalacji wszystkiego.
xavn-mpt

@Sam w tej chwili to 8.0.0-beta.27
xavn-mpt

Odpowiedzi:


16

Miałem ten sam problem i te 2 polecenia uratowały mi życie. Moim podstawowym problemem jest to, że zawsze mam problemy z instalacją globalną i instalacją lokalną. Być może masz podobny problem i mam nadzieję, że uruchomienie tych poleceń również rozwiąże problem.

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

To działało dobrze dla mnie.
to jest yash

2
to działa dla mnie. ale muszę obniżyć wersję maszynopisu do wersji 3.6.x. powyżej 3.8.0 nie działa i generuje błąd.
Hardik Patel

11

Ustawienie "skipLibCheck": truew tsconfig.jsonrozwiązać mój problem

"compilerOptions": {
    "skipLibCheck": true
}

1
To również zadziałało dla mnie i myślę, że jest w porządku dla POC lub przykładowego projektu, ale inny wątek omawia potencjalne wady robienia tego ogólnie: stackoverflow.com/questions/52311779/...
ewomack

to jest dla mnie praca, po wielu próbach w końcu zacząłem swój metronicowy projekt demo. Dzięki!
JMSamudio

7

Mam ten sam problem, gdy dodałem teraz @ angular / flex-layout do mojego projektu Angular 8 z

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

Od tego czasu to polecenie zainstalowało główną 9. wersję pakietu flex-layout. Zamiast uaktualniać wszystko inne do ostatniej wersji, rozwiązałem to, instalując zamiast tego ostatnią 8. główną wersję pakietu .

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

2

Wygląda na to, że niedawno zainstalowałeś pakiet flex-layout. Spróbuj usunąć ten folder pakietu z folderu node_modules i ponownie zainstalować poprzednią wersję tego pakietu.

Niedawno (2 dni przed bieżącą datą) firma angular wydała najnowszą wersję angular-cli (v9.0.1), dzięki czemu wiele pakietów jest aktualizowanych w celu obsługi najnowszej wersji cli. W twoim przypadku możesz mieć starą wersję cli, a kiedy zainstalowałeś ten pakiet, domyślnie został pobrany do najnowszej wersji cli. Spróbuj obniżyć wersję pakietu. Pracował dla mnie przynajmniej.

Nie zapomnij również obniżyć wersji pakietu do pliku package.json


2

próbować

ng update @angular/core @angular/cli

Następnie, aby zsynchronizować materiał, uruchom:

ng update @angular/material


2

Szybkie rozwiązanie: zaktualizuj pakiet.json

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

W tsconfig.json

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

następnie usuń folder node_modules i zainstaluj ponownie za pomocą

instalacja npm

Więcej informacji tutaj


0

to krótka odpowiedź, którą mam nadzieję pomóc

Spróbuj obniżyć interfejs Agular i Angular-CLI do wersji 8, myślę, że twój problem jest związany ze zgodnością pakietów


0

Myślę, że problem pojawił się w wyniku niedopasowania maszynopisu i wersji modułu. Ten problem jest bardzo podobny do twojego pytania, a odpowiedzi są bardzo satysfakcjonujące.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.