Warum verursacht dieser Code keinen TypeScript-Typfehler?

Mit wie folgt definierten Schnittstellen:

interface IRemoteService {
  createRecord(record: RecordType): ng.IPromise<ICreateResponse<string>>;
}

interface ICreateResponse<T> {
  createdId: T;
}

Warum verursacht der folgende Code keinen Typescript-Kompilierungsfehler?

class RemoteServiceMock implements IRemoteService {
  public static $inject = ["$q"];

  constructor(private $q: ng.IQService){
  }

  createRecord(record: RecordType): ng.IPromise<ICreateResponse<string>> {
    return this.$q.when({});
  }
}

Die Art von$q.when istwhen<T>(value: T): IPromise<T>.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage