[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": true
가 tsconfig.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 설치
더 방문 하려면 여기