Passport JS Google OAuth20 策略打字稿错误

问题描述 投票:0回答:1

我目前正在将 Passport JS Google OAuth2 策略从 JavaScript 迁移到 TypeScript,并且收到 TypeScript 编译错误。 clientIDClientSecret 字段突出显示为没有与调用匹配的重载。我检查了界面,它将两个选项显示为字符串。

完整错误如下:

TSError:⨯ 无法编译 TypeScript: middleware/passport.google.ts:12:5 - 错误 TS2769:没有重载与此调用匹配。 最后一次超载出现以下错误。 输入“字符串|” undefined' 不可分配给类型'string'。 类型“未定义”不可分配给类型“字符串”。 输入“字符串|” undefined' 不可分配给类型'string'。 类型“未定义”不可分配给类型“字符串”。

问题的图片可以在这里看到:

界面可以在这里看到:

有什么想法吗?

typescript passport.js passport-google-oauth
1个回答
0
投票

好吧,我已经解决了这个问题,以防万一其他人遇到同样的问题。不幸的是,dotenv 最初是“未定义的”,因此这里有两种可能的解决方案:

  1. 通过设置默认字符串为clientIDclientSecret设置默认值。例如:

    const clientID: string = process.env.GOOGLE_CLIENT_ID ?? 'someDefaultString'
     const clientSecret: string = process.env.GOOGLE_CLIENT_SECRET ?? 'someDefaultString'

  2. 编辑 Passport-google-oauth20 index.d.ts 文件( ode_modules@types\passport-google-oauth20\index.d.ts) 如下:

    clientID: string | undefined;
    clientSecret: string | undefined;

我个人使用第一个选项,因为我不喜欢直接编辑节点模块。

© www.soinside.com 2019 - 2024. All rights reserved.