Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

fix: support TypeScript interface as parameters of hmset and mset #1545

Merged
merged 2 commits into from
Mar 30, 2022

Conversation

luin
Copy link
Collaborator

@luin luin commented Mar 27, 2022

Closes #1536

There is a limit on the TypeScript side microsoft/TypeScript#15300 (comment) that you can't assign an interface to a record:

interface User {
  name: string;
  age: string;
}

let newUser: User = {
  name: "suman",
  age: "34",
};

const record: Record<string, string> = newUser; // Error here

Given hmset and mset already support ES6 Map, I think it's should be fine to loosen the typing here for convenience.

It's possible that developers may pass invalid object values (e.g. redis.hmset("user-hash", new WeakMap([[{ name: "Bob" }, "value"]]))) but I think that's fine since the usage doesn't make sense and it will trigger an runtime error anyway.

@luin luin requested a review from marcbachmann March 27, 2022 03:14
@luin luin requested a review from marcbachmann March 27, 2022 12:02
@luin luin merged commit 3444791 into main Mar 30, 2022
@luin luin deleted the hmset-record branch March 30, 2022 02:10
github-actions bot pushed a commit that referenced this pull request Mar 30, 2022
## [5.0.2](v5.0.1...v5.0.2) (2022-03-30)

### Bug Fixes

* allow option maxRetriesPerRequest to be null ([#1553](#1553)) ([d62a808](d62a808)), closes [#1550](#1550)
* support TypeScript interface as parameters of hmset and mset ([#1545](#1545)) ([3444791](3444791)), closes [#1536](#1536)
@github-actions
Copy link

🎉 This PR is included in version 5.0.2 🎉

The release is available on:

Your semantic-release bot 📦🚀

janus-dev87 added a commit to janus-dev87/ioredis-work that referenced this pull request Mar 1, 2024
## [5.0.2](redis/ioredis@v5.0.1...v5.0.2) (2022-03-30)

### Bug Fixes

* allow option maxRetriesPerRequest to be null ([#1553](redis/ioredis#1553)) ([d62a808](redis/ioredis@d62a808)), closes [#1550](redis/ioredis#1550)
* support TypeScript interface as parameters of hmset and mset ([#1545](redis/ioredis#1545)) ([3444791](redis/ioredis@3444791)), closes [#1536](redis/ioredis#1536)
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

hmset in typescript object
2 participants