我正在重构一些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;
}
对关键字的解释,它对地图和其他对象的工作原理以及它的一些文档都很好,但任何信息都有助于维护这个代码库。
特别是我想更新函数定义以包含返回类型,但需要确信它确实是一个“Trip”对象。下面的示例所需函数定义:
public mergeBookings(bookingData: Immutable.Map<number, Booking>): Trip {...}
我已经查看了StackOverflow对TypeScript的回答,并且文档的长期谷歌会话没有提供任何帮助。根据标签,此代码使用:
打字稿
角
Immutable.js
答案 0 :(得分:1)
as
只是一个演员。它不做任何转换。它不会以任何方式改变trip
。它的唯一目的是要求typescript编译器信任programer而不产生错误消息。