More specific data types - ArrayBuffer instead of ArrayBufferLike#279
Merged
gfx merged 1 commit intomsgpack:mainfrom Dec 26, 2025
Merged
More specific data types - ArrayBuffer instead of ArrayBufferLike#279gfx merged 1 commit intomsgpack:mainfrom
gfx merged 1 commit intomsgpack:mainfrom
Conversation
By default, TypeScript interfaces like `DataView` and `Uint8Array` are used with the more generic `ArrayBufferLike` type, representing that they can work with either `ArrayBuffer` or `SharedArrayBuffer`. TypeScript 5.9 now uses stricter types for interfaces such as the DOM `fetch` method: a DOM `BufferSource` is now (correctly) marked as requiring `ArrayBuffer`, not `SharedArrayBuffer`. As a result of that change, trying to use a @msgpack/msgpack `encode` result with a `fetch` call will result in a type error. This change updates the types in the `Encoder` class to use `ArrayBuffer` instead of `ArrayBufferLike`, which reflects their implementation and prevents issues with the newer, stricter interfaces.
Member
|
Thanks. I don't understand why TypeScript has such imcomptible changes, but I'm willing to merge it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
By default, TypeScript interfaces like
DataViewandUint8Arrayare used with the more genericArrayBufferLiketype, representing that they can work with eitherArrayBufferorSharedArrayBuffer. TypeScript 5.9 now uses stricter types for interfaces such as the DOMfetchmethod: a DOMBufferSourceis now (correctly) marked as requiringArrayBuffer, notSharedArrayBuffer. As a result of that change, trying to use a @msgpack/msgpackencoderesult with afetchcall will result in a type error. This change updates the types in theEncoderclass to useArrayBufferinstead ofArrayBufferLike, which reflects their implementation and prevents issues with the newer, stricter interfaces.See microsoft/TypeScript#62168 for more info.