【发布时间】:2021-06-25 05:36:43
【问题描述】:
我正在使用 TypeScript 开发 passport.serializeUser。
passport.serializeUser((user: User, done) => {
done(null, user.id)
});
这是我得到的错误:
No overload matches this call.
Overload 1 of 2, '(fn: (user: User, done: (err: any, id?: unknown) => void) => void): void', gave the following error.
Argument of type '(user: import("/Users/minseokim/Documents/dev/project/my-todo/models/user").default, done: (err: any, id?: unknown) => void) => void' is not assignable to parameter of type '(user: Express.User, done: (err: any, id?: unknown) => void) => void'.
Types of parameters 'user' and 'user' are incompatible.
Type 'User' is missing the following properties from type 'User': id, email, password, nickname, and 31 more.
Overload 2 of 2, '(fn: (req: IncomingMessage, user: User, done: (err: any, id?: unknown) => void) => void): void', gave the following error.
Argument of type '(user: User, done: (err: any, id?: unknown) => void) => void' is not assignable to parameter of type '(req: IncomingMessage, user: User, done: (err: any, id?: unknown) => void) => void'.
Types of parameters 'user' and 'req' are incompatible.
Type 'IncomingMessage' is missing the following properties from type 'User': id, email, password, nickname, and 30 more.
【问题讨论】:
-
您需要提供更多信息。
serializeUser的类型定义是什么?似乎该方法有两个重载,并且它们都不匹配您传入的内容。User的类型来自哪里等等。也许一个小的打字稿游乐场 (typescriptlang.org/play) 将有助于显示您的错误
标签: typescript express passport.js