VS Code:在打字稿项目中启用javascript intellisense

时间:2018-06-22 08:43:29

标签: typescript visual-studio-code intellisense vscode-settings javascript-intellisense

有没有一种方法可以为Typescript项目中的Javascript文件启用智能感知? 如果我从这样的javascript包中导入函数:

import foo from "js-package"

现在我在index.js中,我看到了智能感知器在拾取JsDoc注释并列出了该函数采用的参数; 但是,如果我在.ts文件中,则不会得到任何信息。 如何使用VS Code在.ts文件中启用Js intellisense?

编辑: 这就是发生的情况:

Typescript: no intellisense

Javascript: intellisense

具有讽刺意味的,不是吗?

6 个答案:

答案 0 :(得分:5)

不需要不需要任何插件。只需添加以下内容即可在您的tsconfig.json中启用typeAcquisition:

{
    ...
    "typeAcquisition": {
            "enable": true
    }
}

这可以自动检测和下载打字稿的定义文件。 更改设置时,我经常重新加载窗口(重新启动vscode),以确保已读取设置。不过,这并不总是必要的。

如果使用tsconfig.json,则默认情况下禁用此功能 配置文件,但可以将其设置为启用,如进一步概述 下面)。 source

它以前在typeOptions.enableAutoDiscovery下,但已重构为typeAcquisition.enable,如此Github issue所示。您仍然可以在此网站上找到对它的引用。我发现很难找到有关typeAcquisition的信息,但是schema证明了它的存在。

丢失 tsconfig.json?在the top answer here之后创建一个。

答案 1 :(得分:0)

您无需为intellisense初始化typescript,它会自动检测是否要显式执行。您可以检查下面的图像,可以从中选择language {{3 }}

答案 2 :(得分:0)

也许您有选项# Bind CTRL+a to the prefix button set -g prefix C-a unbind C-b bind C-a send-prefix bind a send-prefix # Remove the delay of escape key set -s escape-time 0 # Bind PREFIX + r to reload the .conf file unbind r bind r source-file ~/.tmux.conf # Quick pane cycling unbind ^A bind ^A select-pane -t :.+ set -g base-index 1 setw -g pane-base-index 1 set-option -g default-shell "/bin/bash" # List of tmux plugins set -g @plugin 'tmux-plugins/tmux-resurrect' # Plugin manager run '~/.tmux/plugins/tpm/tpm' # Enable mouse support on tmux set -g mouse on # Rebind the pane switching to vim-like shortcuts bind -r k select-pane -U bind -r j select-pane -D bind -r h select-pane -L bind -r l select-pane -R unbind Up unbind Down unbind Left unbind Right unbind C-Up unbind C-Down unbind C-Left unbind C-Right # Set the tmux colors to default set -g default-terminal screen-256color 。 在这种情况下,将其设置为"typescript.suggest.completeJSDocs": false可以为您提供帮助。

https://code.visualstudio.com/docs/languages/typescript#_jsdoc-support

请记住,将JSDoc用于TypeScript代码时,不应包含类型注释。 TypeScript编译器仅使用TypeScript类型注释,而忽略JSDoc中的注释。

答案 3 :(得分:0)

我在使用npm模块时遇到了这个问题,该模块没有来自绝对类型的类型定义。

现在我才弄清楚,如果您在.ts文件中添加对.js文件的引用,您将获得对该引用文件的智能感知。

我的文件顶部看起来像这样:

///<reference path="../node_modules/tinkerforge/Tinkerforge.js" />
///<reference path="../node_modules/tinkerforge/lib/IPConnection.js" />

import * as tinkerforge from "tinkerforge";

let ip = new tinkerforge.IPConnection();
ip.connect();

对我来说,这似乎是一种黑客,但是它确实满足了我的期望,而无需为此模块编写d.ts文件。

其他任何人都可以尝试并确认它有效吗?

答案 4 :(得分:-1)

您可能想在checkJs中启用compiler options。使用checkJs选项,TypeScript编译器可以基于基本类型推断和JSDoc来检查JavaScript代码上的类型。

另一种方法是自己处理模块:TypeScript对此有a nice documentation

答案 5 :(得分:-1)

您尝试过“ IntelliCode”扩展名吗?

请在此处找到链接: https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode