微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类型错误:Loki 不是构造函数

如何解决类型错误:Loki 不是构造函数

我似乎无法弄清楚为什么这不起作用

我的 Hapi.js index.ts 看起来像这样:

import { Server,Request,Responsetoolkit } from '@hapi/hapi';
import * as Loki from 'lokijs';

...

const db = new Loki(`${UPLOAD_PATH}/${DB_NAME}`,{ persistenceMethod: 'fs' });

非常直接,取自著名的 example

我的 package.json 中的脚本如下所示:

"scripts": {
"prestart": "tsc","start": "node dist/index.js",...

编译成 dist/index.js 当我运行 start 时,出现以下错误

TypeError: Loki is not a constructor

我尝试了各种方法,但我想我没有抓住重点,如果有人可以帮助我,我将不胜感激。 Loki 不是构造函数,我明白了,但是我如何实例化一个新的 Loki(),为什么同样的事情在其他地方也能正常工作?

感谢您的帮助!

解决方法

您可以执行以下任一操作:

import * as Loki from 'lokijs';
const db = new Loki.default(`${UPLOAD_PATH}/${DB_NAME}`,{ persistenceMethod: 'fs' });
// For me,I don't like this way. It looks bad.

import Loki from 'lokijs';
const db = new Loki(`${UPLOAD_PATH}/${DB_NAME}`,{ persistenceMethod: 'fs' });

在lokijs里面看,类好像导出为module.exports = factory(),相当于export default factory(),所以类导出为default。这是一个有助于理解我的意思的有用问题:ES6: "import * as alias" vs "import alias"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。