【问题标题】:Intellisense autocomplete does not work well in VS Code for JSIntellisense 自动完成在 VS Code for JS 中无法正常工作
【发布时间】:2017-07-21 23:21:46
【问题描述】:

使用 node js 创建了简单的机器人应用程序(下面提到的代码)。 session 参数的自动完成在第 22 行工作正常。但是,即使使用 JSDoc 定义,session 参数(在 ReceiveMessage() 函数中)在第 29 行也不起作用。

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

VS Code for Node.js Development Quickstart Pack 扩展已安装,没有它也无法工作。也复制了,没有扩展。

botbuilder中定义的类型会话:

npm install --save botbuilder
npm install --save restify

在文件中:node_modules/botbuilder/lib/botbuilder.d.ts

VS Code bug还是有办法解决这个问题?

【问题讨论】:

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


    【解决方案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);    
    }
    

    这行得通!

    【讨论】:

    • 第一个选项就像一个冠军。对它有什么危险吗? // const builder = new require("botbuilder");从'botbuilder'导入*作为构建器; // const restify = new require("restify");导入 * as restify from 'restify';
    猜你喜欢
    • 1970-01-01
    • 2011-09-16
    • 2014-05-18
    • 1970-01-01
    • 2020-10-12
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多