Definitelytyped: JWT

تم إنشاؤها على ٦ يونيو ٢٠١٧  ·  3تعليقات  ·  مصدر: DefinitelyTyped/DefinitelyTyped

أنا أستخدم VS Code. يعتمد على TypeScript ، ويستخدم جميع تعريفات TS. المشكلة مع مكتبة jsonwebtoken . jwt.sign(...,) على كائن.

// تعريفات النوع لـ jsonwebtoken 7.2.0
// المشروع: https://github.com/auth0/node-jsonwebtoken
// تعريفات بواسطة: Maxime LUCE https://github.com/SomaticIT ، Daniel Heim https://github.com/danielheim
// التعريفات: https://github.com/DefinitelyTyped/DefinitelyTyped
// إصدار 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 التقييمات