Saya mendapatkan

ketik 'dapat diamati bukan generik'

Meskipun mengimpor file. Saya mencoba operasi CRUD di sudut 7 dan membuat dua komponen yang menambah dan daftar karyawan, dan fungsi saya untuk membuat dan mendapatkan daftar karyawan ditulis dalam "policy.service.ts", di mana saya mendapatkan

ketik 'Dapat diamati' bukan generik

Saya tidak mengerti kesalahan saya, Tolong bantu untuk menyelesaikan ini

Ini adalah package.json saya

{
    "name": "crudop",
    "version": "0.0.0",
    "scripts": {
        "ng": "ng",
        "start": "ng serve",
        "build": "ng build",
        "test": "ng test",
        "lint": "ng lint",
        "e2e": "ng e2e"
    },
    "private": true,
    "dependencies": {
        "@angular/animations": "~7.2.0",
        "@angular/common": "~7.2.0",
        "@angular/compiler": "~7.2.0",
        "@angular/core": "~7.2.0",
        "@angular/forms": "~7.2.0",
        "@angular/platform-browser": "~7.2.0",
        "@angular/platform-browser-dynamic": "~7.2.0",
        "@angular/router": "~7.2.0",
        "angular-in-memory-web-api": "^0.8.0",
        "bootstrap": "^4.3.1",
        "core-js": "^2.5.4",
        "rxjs": "~6.3.3",
        "rxjs-compat": "^6.5.2",
        "tslib": "^1.9.0",
        "zone.js": "~0.8.26"
    },
    "devDependencies": {
        "@angular-devkit/build-angular": "~0.13.0",
        "@angular/cli": "~7.3.9",
        "@angular/compiler-cli": "~7.2.0",
        "@angular/language-service": "~7.2.0",
        "@types/node": "~8.9.4",
        "@types/jasmine": "~2.8.8",
        "@types/jasminewd2": "~2.0.3",
        "codelyzer": "~4.5.0",
        "jasmine-core": "~2.99.1",
        "jasmine-spec-reporter": "~4.2.1",
        "karma": "~4.0.0",
        "karma-chrome-launcher": "~2.2.0",
        "karma-coverage-istanbul-reporter": "~2.0.1",
        "karma-jasmine": "~1.1.2",
        "karma-jasmine-html-reporter": "^0.2.2",
        "protractor": "~5.4.0",
        "ts-node": "~7.0.0",
        "tslint": "~5.11.0",
        "typescript": "~3.2.2"
    }
}

Kebijakan.layanan.ts

import {
    Injectable
} from '@angular/core';
import {
    HttpClient
} from '@angular/common/http';
import {
    HttpHeaders
} from '@angular/common/http';
import {
    IEmployee
} from './Iempolyee';
import {
    Observable
} from 'rxjs/Observable';


@Injectable({
    providedIn: 'root'
})
export class PolicyService {

    constructor(private http: HttpClient) {}
    private url = 'api/employees';

    getEmployees(): Observable < IEmployee[] > {
        return this.http.get < IEmployee[] > (this.url)
    }

    createUseremployee(user: IEmployee): Observable < IEmployee > {
            const httpOptions = {
                    headers: new HttpHeaders({
                            'Content- 
                            Type ':'
                            application / json '})}
                            return this.http.post < IEmployee > (this.url, user, httpOptions);
                        }

                    }

Di sini saya mendapatkan masalah untuk fungsi getEmployee dan createUseremployee yang tipenya dapat diamati tidak umum.

Saya berpikir jika saya perlu menginstal ulang semua atau trik apa pun dapat berhasil

layanan kebijakan

0
harsh mewari 1 Juni 2019, 23:01

2 jawaban

Jawaban Terbaik

Terima kasih Atas bantuannya, tetapi akhirnya saya telah memulai kembali dari awal seperti folder yang dibuat dan menginstal semuanya, ini aneh tetapi setelah itu semuanya mulai berfungsi dan masalah yang sama tidak terjadi.

Terima kasih lagi

0
harsh mewari 12 Juni 2019, 09:24

Anda perlu menambahkan {} untuk Observable dan hanya mengimpor dari rxjs

import { Observable } from 'rxjs';

Ini bekerja untukku

import {  Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { HttpHeaders} from '@angular/common/http';
import { Observable } from 'rxjs';

export interface IEmployee {
   id:number
}


@Injectable({
    providedIn: 'root'
})
export class PolicyService {

constructor(private http: HttpClient) { }
private url = 'api/employees';

getEmployees(): Observable<IEmployee[]> {
    return this.http.get<IEmployee[]>(this.url)
}

createUseremployee(user: IEmployee): Observable<IEmployee> {
    const httpOptions = {
        headers: new HttpHeaders({
            'Content-Type ': 'application / json '
        })
    }
    return this.http.post<IEmployee>(this.url, user, httpOptions);
}
1
renato cohaila 2 Juni 2019, 06:35