Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ΄ VS. ΠΠ½ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° TypeScript, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ TS. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ jsonwebtoken
. jwt.sign(...,)
Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Object.
// ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ jsonwebtoken 7.2.0
// ΠΡΠΎΠ΅ΠΊΡ: https://github.com/auth0/node-jsonwebtoken
// ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ: ΠΠ°ΠΊΡΠΈΠΌ ΠΡΡ https://github.com/SomaticIT , ΠΠ°Π½ΠΈΡΠ»Ρ Π₯Π΅ΠΉΠΌ 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'.
ΠΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ 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).
ΠΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΏΠ° (ΠΈΠ»ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ²);