Definitelytyped: 智威汤逊

创建于 2017-06-06  ·  3评论  ·  资料来源: DefinitelyTyped/DefinitelyTyped

我正在使用 VS 代码。 它基于 TypeScript,它使用所有 TS 定义。 问题在于jsonwebtoken库。 jwt.sign(...,)没有对象。

// jsonwebtoken 7.2.0 的类型定义
// 项目: https :
// 定义:Maxime LUCE https://github.com/SomaticIT,Daniel Heim https://github.com/danielheim
// 定义: https :
// 打字稿版本:2.2

export declare function sign(payload: string | Buffer | object, secretOrPrivateKey: string | Buffer, options: SignOptions, callback: SignCallback): void;

在 JWT 中,你可以传递任何你想要的对象,但是简单的jwt.sign({userId: 1},...)不起作用它说:

Argument of type '{ userId: number; }' is not assignable to parameter of type 'string | object | Buffer'.
  Object literal may only specify known properties, and 'userId' does not exist in type 'string | object | Buffer'.

最有用的评论

正如@andy-ms 提到的,这是由于 TypeScript 中的错误(Microsoft/TypeScript#16235)

例如,解决方法是使用类型推断(或强制转换);

const payload = { "foo": "bar" }

jwt.sign(payload, secret)

所有3条评论

应该由 Microsoft/TypeScript#16290 修复。 一旦进入,请用typescript@next试一试。

正如@andy-ms 提到的,这是由于 TypeScript 中的错误(Microsoft/TypeScript#16235)

例如,解决方法是使用类型推断(或强制转换);

const payload = { "foo": "bar" }

jwt.sign(payload, secret)

@mdebruijne谢谢,已经这样做了。

此页面是否有帮助?
0 / 5 - 0 等级