У меня тысячи ошибок после первоначальной реализации и ввода в терминале ng serve my-app of, и я не могу их устранить. Это впервые для меня, когда у меня такая проблема внутри angular с машинописными ошибками выглядит так:
ОШИБКА в ../../node_modules/@angular/flex-layout/core/typings/base/base2.d.ts:24:19 - ошибка 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, name: 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));
}
}
источник
9.0.0-beta.28
@ angular / flex-layout? Я попытался бы вернуться к предыдущей версии, прежде чем они столкнулись с версией TS.Ответы:
У меня была такая же проблема, и эти 2 команды спасли мне жизнь. Моя основная проблема заключается в том, что я всегда путаюсь с глобальной установкой и локальной установкой. Возможно, вы столкнулись с подобной проблемой, и, надеюсь, выполнение этих команд также решит вашу проблему.
источник
Установка
"skipLibCheck": true
вtsconfig.json
решил мою проблемуисточник
У меня возникла такая же проблема при добавлении @ angular / flex-layout в мой проект Angular 8 с помощью
С тех пор эта команда установила основную 9-ю версию пакета flex-layout. Вместо того, чтобы обновлять все остальное до последней версии, я решил ее, установив вместо этого последнюю восьмую основную версию пакета .
источник
Похоже, вы недавно установили пакет flex-layout. Попробуйте удалить эту папку пакета из папки node_modules и переустановить предыдущую версию этого пакета.
Недавно (за 2 дня до текущей даты) angular выпустила последнюю версию angular-cli (v9.0.1), в связи с чем многие пакеты были обновлены для поддержки этой последней версии cli. В вашем случае у вас может быть старая версия cli, и при установке этого пакета он был загружен для последней версии cli по умолчанию. Поэтому попробуйте понизить версию вашего пакета. Работал для меня по крайней мере.
Также не забудьте понизить версию вашего пакета в файле package.json.
источник
пытаться
Затем, чтобы синхронизировать материал, запустите:
источник
В моем случае работало понижение @ angular / animations, если вы можете себе это позволить, запустите команду
Или используйте другую версию, которая может работать для вас, на вкладке Версии здесь: https://www.npmjs.com/package/@angular/animations.
источник
Быстрое решение: обновите package.json
В tsconfig.json
затем удалите папку node_modules и переустановите с
Для большего посещения здесь
источник
это краткий ответ, который я надеюсь помочь
Попробуйте понизить Agular и Angular-CLI до v8, я думаю, что ваша проблема - проблема совместимости пакетов
источник
Я думаю, что ваша проблема возникла из-за несоответствия версий машинописного текста и модуля. Этот вопрос очень похож на ваш вопрос, и ответы очень удовлетворяют.
источник