带有本地护照的 TypeScript:不能将“new”与类型缺少调用或构造签名的表达式一起使用
Posted
技术标签:
【中文标题】带有本地护照的 TypeScript:不能将“new”与类型缺少调用或构造签名的表达式一起使用【英文标题】:TypeScript with passport-local: Cannot use 'new' with an expression whose type lacks a call or construct signature 【发布时间】: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
就可以正常工作了。
【参考方案1】:
试试这个:
import * as passportLocal from 'passport-local';
const LocalStrategy = passportLocal.Strategy;
【讨论】:
【参考方案2】:import Strategy as LocalStrategy from 'passport-local';
【讨论】:
以上是关于带有本地护照的 TypeScript:不能将“new”与类型缺少调用或构造签名的表达式一起使用的主要内容,如果未能解决你的问题,请参考以下文章
laravel 中的护照详细信息 api 在本地主机上可以正常工作,但不能在共享主机上运行