Saya menggunakan Kode VS. Ini didasarkan pada TypeScript, ia menggunakan semua definisi TS. Masalahnya adalah dengan perpustakaan jsonwebtoken
. jwt.sign(...,)
tidak memiliki Objek.
// Ketik definisi untuk jsonwebtoken 7.2.0
// Proyek: https://github.com/auth0/node-jsonwebtoken
// Definisi oleh: Maxime LUCE https://github.com/SomaticIT , Daniel Heim https://github.com/danielheim
// Definisi: https://github.com/DefinitelyTyped/DefinitelyTyped
// Versi TypeScript: 2.2
export declare function sign(payload: string | Buffer | object, secretOrPrivateKey: string | Buffer, options: SignOptions, callback: SignCallback): void;
Di JWT Anda dapat melewatkan objek apa pun yang Anda inginkan, tetapi jwt.sign({userId: 1},...)
tidak berfungsi, katanya:
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'.
Harus diperbaiki oleh Microsoft/TypeScript#16290. Silakan mencobanya dengan typescript@next
setelah itu masuk.
Seperti yang disebutkan @andy-ms, ini karena bug di TypeScript (Microsoft/TypeScript#16235)
Solusinya adalah dengan menggunakan inferensi tipe (atau casting), misalnya;
const payload = { "foo": "bar" }
jwt.sign(payload, secret)
@mdebruijne Terima kasih, sudah melakukannya.
Komentar yang paling membantu
Seperti yang disebutkan @andy-ms, ini karena bug di TypeScript (Microsoft/TypeScript#16235)
Solusinya adalah dengan menggunakan inferensi tipe (atau casting), misalnya;