我得到了错误
“属性'create'在类型'typeof ChatEngineCore'上不存在”和
“类型'ChatEngineCore'的类型上不存在属性'插件'
当我尝试在PubNub Angular2 Chatbot教程上调用ChatEngineCore.create和ChatEngineCore.plugin时。
有什么想法吗?我是否缺少简单的东西?这是直接从PubNub的教程复制的代码:
import { Injectable } from '@angular/core';
import { ChatEngineCore } from 'chat-engine';
@Injectable()
export class ChatEngine {
instance: any;
create: any;
plugin: any;
me: any = { state: {} };
chat: any = {};
chats: any[] = [];
constructor() {
// Make sure to import ChatEngine first!
this.instance = ChatEngineCore.create({
publishKey: 'MY-PUBLISH-KEY',
subscribeKey: 'MY-SUBSCRIBE-KEY'
},
{
debug: true,
globalChannel: 'chat-engine-angular2-simple'
});
this.create = ChatEngineCore.create.bind(this);
this.plugin = ChatEngineCore.plugin;
}
newChat(user) {
// define a channel
let chat = new Date().getTime();
// create a new chat with that channel
let newChat = new this.instance.Chat(chat);
// we need to auth ourselves before we can invite others
newChat.on('$.connected', () => {
// this fires a private invite to the user
newChat.invite(user);
// add the chat to the list
this.chats.push(newChat);
});
}
}
答案 0 :(得分:0)
我知道这是一个老问题,但是,由于我已经解决了同样的问题,这种解决方法可能会帮助其他人。
由于ChatEngineCore
是全局声明的,所以我要做的是删除其导入,然后直接从window
对象中调用它:
this.instance = window['ChatEngineCore'].create({ ... });
希望以后chat-engine
软件包的更新将解决此导入错误。
答案 1 :(得分:0)
ChatEngineCore具有create和plugin属性,但它们并不直接存在于其中。
它们在ChatEngineCore类的对象实例的原型内。
要访问我们,我们需要使用命令:
ChatEngineCore.prototype.create()
ChatEngineCore.prototype.plugins
:)