我在Windows和Mac上使用Visual Studio Code(VSC)0.10.11。出于这个问题的目的,我有一个小的JavaScript代码段:
'use strict';
const os = require('os');
console.log(os.homedir());
我跟随John Papa使用Visual Studio Code(Blog entry和Pluralsight Visual Studio Code JavaScript Intellisense - 对于那些拥有帐户的人),因此我希望VSC在打字时提供Intellisense和Quick fix选项。< / p>
在上面的代码段中,VSC会识别console
和log()
(我使用胡佛,但与智能感知相同):
但不是os
和homedir()
:
但typings/main/ambient/node/index.d.ts
中提供了所有4种类型。我知道在require
的情况下差异是os
,但在John Papa的视频课程中,VSC还为所需的模块提供了IntelliSense。不同之处在于John Papa在使用tsd
时使用了typings
。
所以我的问题是
答案 0 :(得分:24)
以上链接已过时。在旧版本的 VS代码中,您需要引用/// <reference path> for somelibrary.d.ts
等类型。
使用新版本,您需要在项目的根目录中创建jsconfig.json
并在内部添加以下内容来初始化项目:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs"
},
"exclude": [
"node_modules"
]
}
接下来安装您需要的输入。您可以使用tsd或typings。在您的情况下,您需要安装tsd install node
或typings install node --ambient
。确保已安装typings/tsd
。重启项目。
请参阅文档:
更新
从版本1.7开始,无需手动安装打字,应自动下载。 Better JavaScript IntelliSense
答案 1 :(得分:1)
我在全局“进程”对象上遇到过这种情况。 Vscode 为进程对象启用智能感知,仅当我向文件中添加任何“require”语句时。
所以如果没有任何其他的require语句,你可以添加
const process = require('process');
在脚本的开头获取智能感知。
答案 2 :(得分:0)
好吧,在经过4个小时的谷歌搜索之后,我决定卸载nodejs,npm和typescript,然后再次安装它们。上一次我使用 nvm 安装它们,但是这次我决定不使用nvm只是从节点源安装它们,因为我使用的是Ubuntu,我执行了波纹管命令,对于Windows或mac来说,它们无需安装任何软件包即可安装或版本管理器。
npm cache clean --force
npm install -g @vue/cli
上面的命令同时安装了nodejs和npm,然后安装打字稿后我运行了波纹管命令
curl https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
sudo apt-add-repository "deb https://deb.nodesource.com/node_7.x $(lsb_release -sc) main"
sudo apt-get update
sudo apt-get install nodejs
我将VSCode更新为最新版本。
然后,在我的VSCode的右下角,我单击了javascript来更改语言模式,我在搜索栏上写了“ type”,然后选择Typescript作为我新选择的语言模式.....宾果游戏
答案 3 :(得分:0)
有一个名为 TypeScript和JavaScript语言功能(vscode.typescript-language-features)的内置扩展已被禁用。
要启用它,请打开“扩展”面板,搜索“ @内置JavaScript”,然后启用所需的扩展。
现在,您应该可以使用自动完成功能了。