Encountered an issue during compilation indicating that a class is missing a property when accessed from the component, even though the call is successful.
Here is the class in question:
export declare class MessageService {
private messageSource;
private clearSource;
messageObserver: import("rxjs/internal/Observable").Observable<Message | Message[]>;
clearObserver: import("rxjs/internal/Observable").Observable<string>;
public add(message: Message): void;
public addAll(messages: Message[]): void;
clear(key?: string): void;
}
And this is how it's being called from the component:
showSuccess(details) {
this.messageService.add({ severity: 'success', life: 5000, summary: 'Success Message', detail: details });
}
Compilation resulted in warnings.
ERROR in C:/Users/..../webapp/app/entities/asset/asset-update.component.ts(555,29):
TS2339: Property 'add' does not exist on type 'MessageService'.
Contents of messageService.js :
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = require("@angular/core");
var rxjs_1 = require("rxjs");
var MessageService = /** @class */ (function () {
function MessageService() {
this.messageSource = new rxjs_1.Subject();
this.clearSource = new rxjs_1.Subject();
this.messageObserver = this.messageSource.asObservable();
this.clearObserver = this.clearSource.asObservable();
}
MessageService.prototype.add = function (message) {
if (message) {
this.messageSource.next(message);
}
};
MessageService.prototype.addAll = function (messages) {
if (messages && messages.length) {
this.messageSource.next(messages);
}
};
MessageService.prototype.clear = function (key) {
this.clearSource.next(key || null);
};
MessageService = __decorate([
core_1.Injectable()
], MessageService);
return MessageService;
}());
exports.MessageService = MessageService;
//# sourceMappingURL=messageservice.js.map