使用节点js创建简单的bot应用程序(下面提到的代码)。对于session
参数,自动完成在第22行中正常工作。但是,对于session
参数(在ReceiveMessage()
函数中),在第29行中不起作用,即使使用JSDoc定义也是如此。
var restify = require('restify');
var builder = require('botbuilder');
// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
console.log('%s listening to %s', server.name, server.url);
});
// Create chat connector for communicating with the Bot Framework Service
var connector = new builder.ChatConnector({
appId: process.env.MICROSOFT_APP_ID,
appPassword: process.env.MICROSOFT_APP_PASSWORD
});
// Listen for messages from users
server.post('/api/messages', connector.listen());
// Receive messages from the user and respond by echoing each message back (prefixed with 'You said:')
var dialog = require("./rootdialog")
var bot = new builder.UniversalBot(connector, function (session) {
session.send("You said: %s", session.message.text);
});
/**
* @param {Session} {session}
*/
function ReceiveMessage(/*Session*/session) {
session.send("You said: %s", session.message.text);
}
安装了Node.js开发快速入门包扩展的VS代码,如果没有它也无法正常工作。也无需扩展即可转载。
botbuilder
中定义的类型会话:
npm install --save botbuilder
npm install --save restify
文件中的:node_modules/botbuilder/lib/botbuilder.d.ts
是VS Code bug还是有办法解决这个问题?
答案 0 :(得分:1)
GitHub上提到的解决方案:
看起来像Microsoft/TypeScript#11825
这些模式应该有效:
import * as builder from 'botbuilder';
/**
* @param {builder.Session} session
*/
function ReceiveMessage(session) {
session.send("You said: %s", session.message.text);
}
或
const {Session} = require('botbuilder');
/**
* @param {Session} session
*/
function ReceiveMessage(session) {
session.send("You said: %s", session.message.text);
}
这有效!