Closed lvao813 closed 5 years ago
因为 egg-passport
这个插件暂时没有提供 ts 的声明文件,欢迎 PR :https://github.com/eggjs/egg-passport
因为
egg-passport
这个插件暂时没有提供ts的声明文件,欢迎PR:https://github.com/eggjs/egg-passport
感谢你的回复,我试试看用koa-passport-ts来做吧
我解决了这个问题,说简单也简单,当出现“[ts] 类型“Application”上不存在属性“passport””的时候,选中passport这个单词,之后vs code会提示你添加引用 点击一下“添加索引签名”会在egg的index.d.ts里添加一行代码,之后就神奇的成功了:
希望官方能把这个东西集成进去,不然我们还是要纠结是否改源码的问题
@lvao813 不要这么做,你这么做,是直接改到了 node_modules 下 ,没用的。
如何给插件添加声明:https://eggjs.org/zh-cn/tutorials/typescript.html#%E6%8F%92%E4%BB%B6
tips: 建议先系统的学一下 typescript ,不要为了用而用
@lvao813 不要这么做,你这么做,是直接改到了 node_modules 下 ,没用的。
如何给插件添加声明:https://eggjs.org/zh-cn/tutorials/typescript.html#%E6%8F%92%E4%BB%B6
tips: 建议先系统的学一下 typescript ,不要为了用而用
感谢你的教诲,我确实对typescript的了解还不深,感谢你指出问题,我现在去修改代码,非常感谢
感谢您的帮助,我现在改为,在项目的index.d.ts文件中添加插件的引用: `import 'egg'; import Passport from 'egg-passport' declare module 'egg' { // 扩展你的配置 interface Application { passport:Passport
}
}` 非常感谢您的指点!
我的版本为: Node Version:v10.11.0 "egg": "^2.6.1", "egg-passport": "^2.0.1", "passport-local": "^1.0.0",
以下是我的代码: plugin.ts
`import { EggPlugin } from 'egg';
const plugin: EggPlugin = { static: true, passport: { enable: true, package: 'egg-passport', },
};
export default plugin;`
app.ts
`import { Application } from 'egg'; import * as mongoose from 'mongoose'; const LocalStrategy = require('passport-local').Strategy; import 'reflect-metadata'; export default (app: Application) => { app.beforeStart(async () => { try { mongoose.connect("mongodb://test:123456@127.0.0.1:27017/test"); console.log('初始化成功'); } catch (error) { console.log(error); }
}; ` 其中app.passport.use中的passport会报错误:[ts] 类型“Application”上不存在属性“passport”。 也无法运行,请问有typescript的关于passport的任何例子或代码片段吗? 我是否忽略了某些重要的配置项? 谢谢!