打字稿 "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
。它的唯一目的是要求打字稿编译器信任程序员而不产生错误消息。
我正在重构一些 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
。它的唯一目的是要求打字稿编译器信任程序员而不产生错误消息。