【问题标题】:TypeScript with passport-local: Cannot use 'new' with an expression whose type lacks a call or construct signature带有本地护照的 TypeScript:不能将“new”与类型缺少调用或构造签名的表达式一起使用
【发布时间】:2017-01-29 14:55:44
【问题描述】:

我正在尝试将 passport-local 包与 TypeScript (2.0.0RC) 一起使用,但出现编译器错误:

错误 TS2351:无法将“new”与类型缺少调用或构造签名的表达式一起使用

附加的 VS Code 中的屏幕截图(工具提示下的代码只是 passport.use()。

我这辈子都不知道如何给它想要的签名。

我在该主题上找到了fewissues,但我尝试的任何操作都会产生其他编译器错误。

有人对如何让编译器满意这段代码有什么建议吗?

【问题讨论】:

  • 如果没有看到 passport-local 的类型就很难判断,但 new localStrategy.Strategy( ... 可能有用。
  • 就是这样! Doh - 我觉得自己像个合适的布偶。感谢您抽出时间指出这一点!
  • 简单的解决方法是更改​​您的导入语句。尝试“从'passport-local'导入{Strategy as localStrategy}。然后你的new localStrategy就可以正常工作了。

标签: node.js typescript passport.js


【解决方案1】:

试试这个:

import * as passportLocal from 'passport-local';
const LocalStrategy = passportLocal.Strategy;

【讨论】:

    【解决方案2】:
    import { Strategy as LocalStrategy } from 'passport-local';
    

    【讨论】:

      猜你喜欢
      • 2015-09-22
      • 2018-02-06
      • 2017-03-25
      • 1970-01-01
      • 2021-01-04
      • 2018-02-09
      • 1970-01-01
      • 2018-10-17
      • 1970-01-01
      相关资源
      最近更新 更多