TS1086: Accessor tidak dapat dideklarasikan dalam konteks ambient


13

Saya memiliki ribuan kesalahan ini setelah implementasi awal dan mengetik terminal ng melayani aplikasi saya dan saya tidak bisa menyelesaikannya. Ini adalah pertama kalinya bagi saya ketika saya memiliki masalah seperti ini di dalam sudut dengan naskah Script terlihat seperti ini:

GALAT dalam ../../node_modules/@angular/flex-layout/core/typings/base/base2.d.ts:24:19 - error TS1086: accessor tidak dapat dideklarasikan dalam konteks ambient.

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

- error TS1086: Accessor tidak dapat dideklarasikan dalam konteks ambient.

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

- error TS1086: Accessor tidak dapat dideklarasikan dalam konteks ambient.

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

- error TS1086: Accessor tidak dapat dideklarasikan dalam konteks ambient.

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

- error TS1086: Accessor tidak dapat dideklarasikan dalam konteks ambient. [...]

Apakah ada yang tahu alasannya? Saya tidak dapat menguji aplikasi saya sampai saya memperbaikinya.

Perbarui 1

Oke, saya membuatnya maju. Sebagian besar kesalahan sudah hilang, tetapi saya punya beberapa kesalahan sekarang, misalnya yang pertama:

GALAT di src / app / main / main.component.ts: 143: 63 - error TS2322: Ketik string | undefined 'tidak dapat ditugaskan untuk mengetik' string '. Ketik 'tidak terdefinisi' tidak dapat ditentukan untuk mengetik 'string'.

143 this.fileService.add ({isFolder: true, name: folder.name, parent: this.currentRoot? This.currentRoot.id: 'root'});

Kode terlihat seperti ini:

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
Sam

@ Sam Saya membaca ini dan tidak ada yang membantu - sayangnya
xavn-mpt

1
Apakah Anda menggunakan versi 9.0.0-beta.28@ angular / flex-layout? Saya akan mencoba memutar kembali ke versi sebelumnya sebelum mereka menabrak versi TS.
Sam

@ Sam saya berubah di package.json ke versi yang lebih lama dan masih memiliki masalah yang sama setelah menghapus node_modules, package-lock.json dan menginstal semuanya lagi.
xavn-mpt

@ Sam pada saat ini 8.0.0-beta.27
xavn-mpt

Jawaban:


16

Saya memiliki masalah yang sama, dan 2 perintah ini menyelamatkan hidup saya. Masalah mendasar saya adalah bahwa saya selalu mengacaukan instalasi global dan instalasi lokal. Mungkin Anda menghadapi masalah serupa, dan mudah-mudahan menjalankan perintah ini juga akan menyelesaikan masalah Anda.

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

Ini bekerja dengan baik untuk saya.
ini yash

2
ini bekerja untuk saya. tetapi saya harus menurunkan versi naskah saya ke 3.6.x. di atas 3.8.0 tidak berfungsi dan melempar kesalahan.
Hardik Patel

12

Pengaturan "skipLibCheck": truedalam tsconfig.jsonmemecahkan masalah saya

"compilerOptions": {
    "skipLibCheck": true
}

1
Ini juga bekerja untuk saya dan saya pikir itu baik untuk POC atau proyek sampel, tetapi utas lain membahas potensi kerugian dari melakukan ini secara umum: stackoverflow.com/questions/52311779/…
ewomack

ini bekerja untuk saya, setelah banyak upaya saya akhirnya memulai proyek demo metronic saya. Terima kasih!
JMSamudio

7

Saya mendapat masalah yang sama ketika menambahkan @ angular / flex-layout ke proyek Angular 8 saya sekarang

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

Ini karena sekarang perintah itu menginstal versi ke-9 utama dari paket tata letak fleksibel. Alih-alih memutakhirkan yang lainnya ke versi terakhir, saya menyelesaikannya dengan menginstal versi utama ke-8 terakhir dari paket .

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

2

Sepertinya Anda baru saja menginstal paket tata letak fleksibel. Coba hapus folder paket ini dari folder node_modules Anda dan instal ulang versi paket ini sebelumnya.

Baru-baru ini (2 hari sebelum tanggal saat ini), angular merilis versi angular-cli terbaru (v9.0.1) karena banyak paket diperbarui untuk mendukung versi cli terbaru ini. Dalam kasus Anda, Anda mungkin memiliki versi cli yang lama dan ketika Anda menginstal paket ini, itu diunduh untuk versi cli terbaru secara default. Jadi coba turunkan versi paket Anda. Bekerja untuk saya minimal.

Juga, jangan lupa untuk menurunkan versi paket Anda di file package.json


2

mencoba

ng update @angular/core @angular/cli

Kemudian, hanya untuk menyinkronkan materi, jalankan:

ng update @angular/material


2

Solusi cepat: Perbarui package.json

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

Di tsconfig.json

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

kemudian hapus folder node_modules dan instal ulang dengan

npm instal

Untuk kunjungan lebih lanjut di sini


0

ini adalah jawaban singkat yang saya harap dapat membantu

Coba turunkan Agular dan Angular-CLI ke v8, saya pikir masalah Anda adalah masalah kompatibilitas paket


0

Saya pikir masalah Anda muncul dari ketidakcocokan naskah dan versi modul. Masalah ini sangat mirip dengan pertanyaan Anda dan jawabannya sangat memuaskan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.