智能感知自动完成功能在VS Code for JS中无法正常工作

时间:2017-07-21 23:21:46

标签: javascript node.js module visual-studio-code jsdoc

使用节点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还是有办法解决这个问题?

1 个答案:

答案 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);    
}

这有效!