Definitelytyped: JWT

์— ๋งŒ๋“  2017๋…„ 06์›” 06์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: DefinitelyTyped/DefinitelyTyped

VS ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 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
// ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋ฒ„์ „: 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 ๋“ฑ๊ธ‰