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));
    }
}
xavn-mpt
sumber
1
Saya akan membaca ini - github.com/microsoft/TypeScript/issues/33939 .
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
Leon Grin
sumber
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
}
VRK
sumber
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
Atle
sumber
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

Hassan Raza
sumber
2

mencoba

ng update @angular/core @angular/cli

Kemudian, hanya untuk menyinkronkan materi, jalankan:

ng update @angular/material
Mohammed Raja
sumber
2

Dalam kasus saya, downgrade @ angular / animasi berfungsi, jika Anda mampu melakukannya, jalankan perintah

npm i @angular/animations@6.1.10

Atau gunakan versi lain yang mungkin cocok untuk Anda dari tab Versi di sini: https://www.npmjs.com/package/@angular/animations

Claudio Teles
sumber
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

Daniel R.
sumber
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

AbuDawood
sumber
0

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

taring Putih
sumber