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


13

터미널 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));
    }
}

1
나는 이것을 읽을 것이다 -github.com/microsoft/TypeScript/issues/33939 .

@Sam 나는 이것을 읽고 아무것도 도움이되지 않습니다-슬프게도
xavn-mpt

1
9.0.0-beta.28@ angular / flex-layout 버전을 사용하고 있습니까? TS 버전이 충돌하기 전에 이전 버전으로 롤백하려고합니다.

@ Sam 나는 package.json에서 이전 버전으로 변경했으며 node_modules, package-lock.json을 삭제하고 모든 것을 다시 설치 한 후에도 동일한 문제가 있습니다.
xavn-mpt

@이 순간에 그것은 8.0.0-beta.27
xavn-mpt

답변:


16

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

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

이것은 나를 위해 잘 작동했습니다.
이것은

2
이것은 나를 위해 작동합니다. 하지만 타입 스크립트 버전을 3.6.x로 다운 그레이드해야합니다. 3.8.0 이상이 작동하지 않아 오류가 발생합니다.
Hardik Patel

11

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

"compilerOptions": {
    "skipLibCheck": true
}

1
이것은 또한 나를 위해 일한와 나는 POC 또는 샘플 프로젝트에 대한 그것의 벌금을 생각하지만, 다른 스레드는 일반적으로이 일의 잠재적 인 단점에 대해 설명합니다 stackoverflow.com/questions/52311779/...
ewomack

이것은 많은 시도 후에 마침내 metronic 데모 프로젝트를 시작했습니다. 감사!
JMSamudio

7

@ 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

2

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

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

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


2

시험

ng update @angular/core @angular/cli

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

ng update @angular/material


2

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

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

tsconfig.json에서

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

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

npm 설치

더 방문 하려면 여기


0

이것은 내가 도울 수있는 간단한 답변입니다

Agular 및 Angular-CLI를 v8로 다운 그레이드하려고합니다. 문제가 패키지 호환성 문제라고 생각합니다.


0

타입 스크립트와 모듈 버전이 일치하지 않아서 문제가 발생했다고 생각합니다. 이 문제 는 귀하의 질문과 매우 유사하며 답변은 매우 만족 스럽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.