Definitelytyped: JWT

作成日 2017年06月06日  ·  3コメント  ·  ソース: DefinitelyTyped/DefinitelyTyped

VSCodeを使用しています。 TypeScriptに基づいており、すべてのTS定義を使用します。 問題はjsonwebtokenライブラリにあります。 jwt.sign(...,)はオブジェクトがありません。

// jsonwebtoken7.2.0のタイプ定義
//プロジェクト: https
//定義:Maxime LUCE https://github.com/SomaticIT、Daniel Heim https://github.com/danielheim
//定義: https
// TypeScriptバージョン: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 評価