我正在尝试使用TypeScript向Redis中的有序集合添加值,像这样:client.ZADD('test', 10, 'test')
,但是这会抛出一个错误。
Argument of type '["test", 10, "test"]' is not assignable to parameter of type '[key: string, members: ZMember | ZMember[], options?: ZAddOptions | undefined] | [options: CommandOptions<ClientCommandOptions>, key: string, members: ZMember | ZMember[], options?: ZAddOptions | undefined]'.
Type '["test", 10, "test"]' is not assignable to type '[options: CommandOptions<ClientCommandOptions>, key: string, members: ZMember | ZMember[], options?: ZAddOptions | undefined]'.
Type at position 0 in source is not compatible with type at position 0 in target.
Type 'string' is not assignable to type 'CommandOptions<ClientCommandOptions>'.
Type 'string' is not assignable to type '{ readonly [symbol]: true; }'.
ZADD
接受三个参数 ([key: string, members: ZMember | ZMember[], options?: ZAddOptions | undefined]
) 或四个参数 ([options: CommandOptions<ClientCommandOptions>, key: string, members: ZMember | ZMember[], options?: ZAddOptions | undefined]
)。假设您想要使用三个值,那么10
是否与ZMember | ZMember[]
兼容,test
是否与ZAddOptions | undefined
兼容?TS 假定您选择了第二个签名,并要求您提供CommandOptions<ClientCommandOptions>
作为第一个参数。 - doupcommandOptions
并将client.ZADD('test', 10, 'test')
更新为clinet.zAdd(commandOptions({}), 'test', 10, 'test')
,但我得到了这个错误Type '[CommandOptions<ClientCommandOptions>, "test", 10, "test"]' is not assignable to type '[options: CommandOptions<ClientCommandOptions>, key: string, members: ZMember | ZMember[], options?: ZAddOptions | undefined]'. Type at position 2 in source is not compatible with type at position 2 in target. Type 'number' is not assignable to type 'ZMember | ZMember[]'
。 - Emekarr