TS1086: एक अभिग्रहणक को परिवेश के संदर्भ में घोषित नहीं किया जा सकता है


13

टर्मिनल एनजी टाइपिंग के शुरुआती कार्यान्वयन के बाद मुझे यह त्रुटि हजारों में है और मैं इसका समाधान नहीं कर पाया। मेरे लिए यह पहली बार है जब मुझे इस तरह की समस्या है कि टाइपिंग एरर्स के साथ कोणीय अंदर ऐसा दिखता है:

ERROR in ../../ode_modules/@angular/flex-layout/core/typings/base/base2.d.ts:24:19 - error 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: एक अभिग्रहणक को एक परिवेश के संदर्भ में घोषित नहीं किया जा सकता है। [...]

क्या किसी को इसका कारण पता है? जब तक मैं इसे ठीक नहीं करता मैं अपने ऐप का परीक्षण नहीं कर सकता।

अपडेट १

ठीक है, मैं इसे आगे बढ़ाता हूं। अधिकांश त्रुटियां दूर हो गई हैं, लेकिन मेरे पास अब कुछ हैं, उदाहरण के लिए उनमें से कुछ:

ERROR इन src / app / main / main.component.ts: 143: 63 - error TS2322: टाइप करें 'स्ट्रिंग | अपरिभाषित 'टाइप' करने के लिए असाइन करने योग्य नहीं है। 'स्ट्रिंग' टाइप करने के लिए 'अपरिभाषित' टाइप करना उचित नहीं है।

143 this.fileService.add ({isFolder: true, name: folder.name, parent: this.SurrentRoot? 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));
    }
}

1
मैं इस पढ़ा होगा - github.com/microsoft/TypeScript/issues/33939
सैम

@ मैं इसे पढ़ता हूं और कुछ भी मदद नहीं करता है - दुख की बात है
xavn-mpt

1
क्या आप 9.0.0-beta.28@ कोणीय / फ्लेक्स-लेआउट के संस्करण का उपयोग कर रहे हैं ? इससे पहले कि वे टीएस संस्करण टकराए मैं पिछले संस्करण में वापस रोल करने की कोशिश करूंगा।
सैम

@Sam मैं package.json में बदल गया। पुराने वर्जन और stil में नोड_मॉड्यूल्स, पैकेज-लॉक.जॉन हटाने और सब कुछ फिर से इंस्टॉल करने के बाद एक ही मुद्दा है।
xavn-mpt

इस समय @Sam यह 8.0.0-beta.27
xavn-mpt

जवाबों:


16

मेरे पास यही मुद्दा था, और इन 2 आदेशों ने मेरी जान बचाई। मेरी अंतर्निहित समस्या यह है कि मैं हमेशा वैश्विक संस्थापन और स्थानीय संस्थापन के साथ खिलवाड़ कर रहा हूँ। हो सकता है कि आप एक समान समस्या का सामना कर रहे हों, और उम्मीद है कि इन कमांडों को चलाने से आपकी समस्या भी हल हो जाएगी।

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

इसने मेरे लिए ठीक काम किया।
यह यश

2
यह मेरे लिए काम करता है। लेकिन मुझे अपने टाइपस्क्रिप्ट संस्करण को 3.6.x पर डाउनग्रेड करना होगा। 3.8.0 से ऊपर काम नहीं कर रहा है और त्रुटि फेंकता है।
हार्दिक पटेल

11

मेरी समस्या "skipLibCheck": trueको tsconfig.jsonहल करने में सेटिंग

"compilerOptions": {
    "skipLibCheck": true
}

1
यह मेरे लिए भी काम करता है और मुझे लगता है कि यह POC या एक नमूना परियोजना के लिए ठीक है, लेकिन एक और धागा सामान्य रूप से ऐसा करने की संभावित डाउनसाइड्स पर चर्चा करता है: stackoverflow.com/questions/52311779/…
ewomack

यह मेरे लिए काम कर रहा है, कई प्रयासों के बाद आखिरकार मैं अपने मेट्रोनिक डेमो प्रोजेक्ट शुरू कर रहा था। धन्यवाद!
JMSamudio

7

जब मेरे साथ कोणीय 8 परियोजना में @ कोणीय / फ्लेक्स-लेआउट जोड़ते समय मुझे एक ही मुद्दा मिला

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

यह अब से उस कमांड ने फ्लेक्स-लेआउट पैकेज के प्रमुख 9 वें संस्करण को स्थापित कर दिया। अंतिम संस्करण के लिए और सब कुछ अपग्रेड करने के बजाय, मैंने पैकेज के अंतिम 8 वें प्रमुख संस्करण को स्थापित करके इसे हल किया ।

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

2

ऐसा लगता है कि आपने हाल ही में फ्लेक्स-लेआउट पैकेज स्थापित किया है। इस पैकेज फ़ोल्डर को अपने नोड_मॉडल फ़ोल्डर से हटाने और इस पैकेज के पिछले संस्करण को पुनः स्थापित करने का प्रयास करें।

हाल ही में (वर्तमान तिथि से 2 दिन पहले), कोणीय ने नवीनतम कोणीय-cli संस्करण (v9.0.1) जारी किया, जिसके कारण इस नवीनतम cli संस्करण का समर्थन करने के लिए कई पैकेज अपडेट किए गए हैं। आपके मामले में आपके पास पुराने cli संस्करण हो सकते हैं और जब आप इस पैकेज को स्थापित करते हैं तो इसे नवीनतम cli संस्करण के लिए डिफ़ॉल्ट रूप से डाउनलोड किया गया था। इसलिए अपने पैकेज संस्करण को अपग्रेड करने का प्रयास करें। मेरे लिए कम से कम काम किया।

इसके अलावा, package.json फ़ाइल में अपने पैकेज के संस्करण को डाउनग्रेड करना न भूलें



2

मेरे मामले में डाउनग्रेडिंग @ कोणीय / एनिमेशन ने काम किया, यदि आप ऐसा कर सकते हैं, तो कमांड चलाएं

npm i @angular/animations@6.1.10

या यहाँ संस्करण टैब से आपके लिए काम करने वाले किसी अन्य संस्करण का उपयोग कर सकते हैं: https://www.npmjs.com/package/@angular/animations


2

त्वरित समाधान: अद्यतन package.json

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

Tsconfig.json में

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

उसके बाद नोड_मॉडल फ़ोल्डर निकालें और साथ पुनर्स्थापित करें

npm स्थापित करें

यहां अधिक यात्रा के लिए


0

यह एक संक्षिप्त उत्तर है जो मुझे मदद की उम्मीद है

V8 को Agular और Angular-CLI को डाउनग्रेड करने का प्रयास करें, मुझे लगता है कि आपकी समस्या एक संकुल संगतता समस्या है


0

मुझे लगता है कि आपकी समस्या टाइपस्क्रिप्ट और मॉड्यूल संस्करण बेमेल से निकली थी। यह मुद्दा आपके प्रश्न के समान है और उत्तर बहुत संतोषजनक हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.