打字稿 "Immutable.Map<K, T> as Object"

Typescript "Immutable.Map<K, T> as Object"

我正在重构一些 TypeScript,遇到了一些让我卡住的东西。

在下面的代码中,"as" 关键字如何将 Map<number, Trip> 转换为 "Trip" 对象?如果不是那么它在做什么?

public mergeBookings(bookingData: Immutable.Map<number, Booking>) {

    // merge bookings
    const bookings: Immutable.Map<number, Booking> = this.mergeBookingData(bookingData);

    // sort bookings
    const sortedBookings: Immutable.Map<number, Booking> = SortingService.sortBookings(bookings);

    // add bookings to trip
    const trip: Map<number, Trip> = this.setBookingData(sortedBookings);

    return trip as Trip;
}

对关键字的解释、它如何用于地图和其他对象以及一些关于它的文档会很好,但任何信息都将有助于维护此代码库。

特别是我想更新函数定义以包含 return 类型,但需要确信它确实是一个 "Trip" 对象。所需函数定义示例如下:

public mergeBookings(bookingData: Immutable.Map<number, Booking>): Trip {...}

我已经在 Whosebug 上查看了关于 TypeScript 的答案,并且长时间的 google 文档会话没有找到任何帮助。根据此代码使用的标签:
打字稿
Angular
Immutable.js

as 只是一个转换运算符。它不做任何转换。它不会以任何方式改变 trip。它的唯一目的是要求打字稿编译器信任程序员而不产生错误消息。