Trying to get a messaging app to work, but I cannot seem to get past an TS error.
The Editor syntax checker - shows this error Type 'Observable<{}>' is not assignable to type 'Observable'. Type '{}' is not assignable to type 'MessageThread[]'. Property 'includes' is missing in type '{}'.
the CODE
import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import * as io from 'socket.io-client';
import { MessageThread } from './message-thread.model';
@Injectable()
export class MessageThreadService {
private getMessageThreadsUrl = 'api/message-thread/get'; // URL to web API
private postMessageThreadsUrl = 'api/message-thread/post'; // URL to web API
constructor(private http: Http) { }
private socket;
private url = window.location.origin;
/*
* Get MessageThreads from server
*/
getMessageThreads(): Observable<MessageThread[]> {
const observable = new Observable(observer => {
console.log('Socket:', this.url);
this.socket = io(this.url);
this.socket.on('refreshMessageThreads', (data) => {
observer.next(data);
});
return () => {
this.socket.disconnect();
};
});
return observable; // **** THIS LINE SHOWS ERROR ****
}
...
the angular transpiler throws this error
ERROR in src/app/components/messages/message-thread.service.ts(35,3): error TS2322: Type 'Observable<{}>' is not assignable to type 'Observable'. Type '{}' is not assignable to type 'MessageThread[]'. Property 'includes' is missing in type '{}'.
Tee Message Thread Model looks like this:
export class MessageThread {
constructor(
public messageThread: string
) { }
}
help is greatly appreciated.
{}, which isn't an array of message threads.