[angular] TS1086 : 주변 컨텍스트에서 접근자를 선언 할 수 없습니다

터미널 ng에 초기 구현 후 nad를 입력 한 후 수천 개의이 오류가 발생하여 my-app를 제공하고 해결할 수 없습니다. typescript 오류가있는 각도 내부에서 이와 같은 문제가 발생하면 처음으로 다음과 같습니다.

../../node_modules/@angular/flex-layout/core/typings/base/base2.d.ts 오류 : TS1086 : 오류 TS1086 : 주변 컨텍스트에서 접근자를 선언 할 수 없습니다.

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

-오류 TS1086 : 주변 컨텍스트에서 접근자를 선언 할 수 없습니다.

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

-오류 TS1086 : 주변 컨텍스트에서 접근자를 선언 할 수 없습니다.

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

-오류 TS1086 : 주변 컨텍스트에서 접근자를 선언 할 수 없습니다.

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

-오류 TS1086 : 주변 컨텍스트에서 접근자를 선언 할 수 없습니다.
[...]

누군가 이유를 알고 있습니까? 앱을 고칠 때까지 테스트 할 수 없습니다.

업데이트 1

알았어, 나는 앞으로 나아 간다. 대부분의 오류는 사라졌지 만 지금은 몇 가지 오류가 있습니다.

src / app / main / main.component.ts의 오류 : 143 : 63-오류 TS2322 : ‘string | undefined ‘는’string ‘유형에 지정할 수 없습니다. ‘undefined’유형은 ‘string’유형에 지정할 수 없습니다.

143 this.fileService.add ({isFolder : true, 이름 : folder.name, 부모 : this.currentRoot? this.currentRoot.id : ‘root’});

코드는 다음과 같습니다

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



답변

나는이 같은 문제가 있었고이 두 명령은 내 생명을 구했습니다. 내 근본적인 문제는 항상 전역 설치와 로컬 설치를 망친다는 것입니다. 어쩌면 비슷한 문제에 직면하고 있으며이 명령을 실행하면 문제가 해결되기를 바랍니다.

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


답변

설정 하면 내 문제 "skipLibCheck": truetsconfig.json해결되었습니다.

"compilerOptions": {
    "skipLibCheck": true
}


답변

@ angular / flex-layout을 Angular 8 프로젝트에 추가 할 때 동일한 문제가 발생했습니다.

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

그 이후로이 명령은 9 번째 버전의 flex-layout 패키지를 설치했습니다. 다른 모든 것을 마지막 버전으로 업그레이드하는 대신 패키지의 마지막 8 번째 주 버전을 설치 하여 문제를 해결했습니다 .

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


답변

최근에 flex-layout 패키지를 설치 한 것 같습니다. node_modules 폴더에서이 패키지 폴더를 제거하고이 패키지의 이전 버전을 다시 설치하십시오.

최근 (현재 날짜 2 일 전)에 angular는 최신 cli 버전 (v9.0.1)을 출시하여이 최신 cli 버전을 지원하도록 많은 패키지가 업데이트되었습니다. 귀하의 경우 이전 cli 버전이있을 수 있으며이 패키지를 설치할 때 기본적으로 최신 cli 버전으로 다운로드되었습니다. 따라서 패키지 버전을 다운 그레이드하십시오. 적어도 나를 위해 일했습니다.

또한 패키지 버전을 다운 그레이드하는 것을 잊지 마십시오. package.json 파일 패키지


답변

시험

ng update @angular/core @angular/cli

그런 다음 재질을 동기화하려면 다음을 실행하십시오.

ng update @angular/material


답변

필자의 경우 @ angular / animations를 다운 그레이드하면 효과가 있다면 명령을 실행하십시오.

npm i @angular/animations@6.1.10

또는 https://www.npmjs.com/package/@angular/animations 의 버전 탭에서 다른 버전을 사용하십시오.


답변

빠른 솔루션 : package.json 업데이트

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

tsconfig.json에서

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

그런 다음 node_modules 폴더를 제거하고

npm 설치

더 방문 하려면 여기