TS1086: Bir erişimci ortam bağlamında bildirilemez


13

Benim ilk uygulama hizmet ng yazarak ilk uygulama nad yazdıktan sonra bu hata binlerce var ve bunu çözemezsiniz. Bu yazı tipi ile açısal içinde böyle bir sorun olduğunda benim için ilk kez Hataları böyle görünüyor:

../../Node_modules/@angular/flex-layout/core/typings/base/base2.d.ts:24:19 - hata TS1086: Bir erişimci ortam bağlamında bildirilemez.

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

- hata TS1086: Bir erişimci ortam bağlamında bildirilemez.

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

- hata TS1086: Bir erişimci ortam bağlamında bildirilemez.

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

- hata TS1086: Bir erişimci ortam bağlamında bildirilemez.

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

- hata TS1086: Bir erişimci ortam bağlamında bildirilemez. [...]

Birisi bir neden biliyor mu? Düzeltene kadar uygulamamı test edemiyorum.

Güncelleme 1

Tamam, ileri sürüyorum. Hataların çoğu gitti, ama şimdi birkaç tane var, örneğin ilk önce:

Src / app / main / main.component.ts: HATA: 143: 63 - hata TS2322: 'string' yazın | undefined ',' string 'yazmak için atanamaz. 'Undefined' türü, 'dize' türüne atanamaz.

143 this.fileService.add ({isFolder: true, ad: klasör.adı, ebeveyn: this.currentRoot? This.currentRoot.id: 'root'});

Kod şöyle görünür:

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


@Sam Bunu okudum ve hiçbir şey yardımcı olmaz - ne yazık ki
xavn-mpt

1
9.0.0-beta.28@ Angular / flex-layout sürümünü mü kullanıyorsunuz ? TS sürümünü çarpmadan önce önceki sürüme geri dönmeyi denerdim.
Sam

@Sam i package.json'da eski sürüme değiştirildi ve node_modules, package-lock.json'u sildikten ve her şeyi tekrar yükledikten sonra aynı sorunu yaşıyorum.
xavn-mpt

@Şu anda bu 8.0.0-beta.27
xavn-mpt

Yanıtlar:


16

Aynı sorunu yaşadım ve bu 2 komut hayatımı kurtardı. Temel sorunum her zaman küresel kurulum ve yerel kurulum ile uğraşmaktır. Belki de benzer bir sorunla karşı karşıyasınız ve umarım bu komutları çalıştırmak da sorununuzu çözecektir.

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

Bu benim için iyi çalıştı.
bu

2
bu benim için çalışıyor. ama benim daktilo sürümünü 3.6.x sürümüne düşürmek zorunda. 3.8.0 üstü çalışmıyor ve hata veriyor.
Hardik Patel

11

Ayar "skipLibCheck": trueiçinde tsconfig.jsonçözüldü benim sorunum

"compilerOptions": {
    "skipLibCheck": true
}

1
Bu da benim için çalıştı ve bir POC veya örnek bir proje için iyi olduğunu düşünüyorum, ancak başka bir iş parçacığı bunu genel olarak yapmanın olası dezavantajlarını tartışıyor: stackoverflow.com/questions/52311779/…
ewomack

bu benim için iş, birçok denemeden sonra nihayet metronik demo projeme başladım. Teşekkürler!
JMSamudio

7

Aynı sorunu şu anda Angular 8 projeme @ angular / flex-layout eklerken de aldım.

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

Bu, o zamandan beri bu komut flex-layout paketinin ana 9. sürümünü yükledi. Diğer her şeyi son sürüme yükseltmek yerine , paketin son 8. büyük sürümünü yükleyerek çözdüm.

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

2

Son zamanlarda flex-layout paketi kurduğunuz anlaşılıyor. Bu paket klasörünü node_modules klasörünüzden kaldırmayı ve bu paketin önceki sürümünü yeniden yüklemeyi deneyin.

Son zamanlarda (şu anki tarihten 2 gün önce), bu son cli sürümünü desteklemek için birçok paketin güncellendiği açısal, en son açısal-cli sürümünü (v9.0.1) yayınladı. Sizin durumunuzda eski cli sürümünüz olabilir ve bu paketi yüklediğinizde varsayılan olarak en son cli sürümü için indirilmiştir. Bu yüzden paket sürümünüzü düşürmeyi deneyin. En azından benim için çalıştı.

Ayrıca, package.json dosyasındaki paketinizin sürümünü düşürmeyi de unutmayın


2

Deneyin

ng update @angular/core @angular/cli

Ardından, yalnızca malzemeyi senkronize etmek için şunları çalıştırın:

ng update @angular/material


2

Hızlı çözüm: Güncelleme paketi.json

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

Tsconfig.json içinde

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

sonra node_modules klasörünü kaldırın ve

npm kurulum

Daha fazla ziyaret için burayı ziyaret edin


0

bu yardım etmeyi umduğum kısa bir cevap

Agular ve Angular-CLI'yı v8'e düşürmeye çalışın, sorununuzun bir paket uyumluluğu sorunu olduğunu düşünüyorum


0

Sorununuzun daktilo ve modül sürümü uyumsuzluğundan kaynaklandığını düşünüyorum. Bu sorun sorunuza çok benziyor ve cevaplar çok tatmin edici.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.