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'.
Microsoft / TypeScript#16290で修正する必要があります。入ったらtypescript@next
試してみてください。
@ andy-msが述べたように、これはTypeScriptのバグによるものです(Microsoft / TypeScript#16235)
回避策は、たとえば型推論(またはキャスト)を使用することです。
const payload = { "foo": "bar" }
jwt.sign(payload, secret)
@mdebruijneありがとう、すでにそれをしました。
最も参考になるコメント
@ andy-msが述べたように、これはTypeScriptのバグによるものです(Microsoft / TypeScript#16235)
回避策は、たとえば型推論(またはキャスト)を使用することです。