Visual Studio Code Intellisense Typescript不起作用

时间:2015-05-22 10:52:49

标签: javascript typescript visual-studio-code

我已经尝试了很长时间,但无论我做什么,我似乎无法让Visual Studio Code intellisense超越单个文件的打字稿。这是在Windows和Ubuntu上。

我已经包含了一个tsconfig.json文件,但它在项目规模上仍然没有任何智能感知。

我当前的测试项目包含以下内容:

tsconfig.json:

configChanges="orientation|keyboardHidden|screenSize"

tasks.json:

{
    "compilerOptions": {
        "module": "commonjs",
        "out": "test.js"
    },
    "files": [
        "test2.ts",
        "tester.ts"
    ]
}

test2.ts:

{
    "version": "0.1.0",
    "command": "tsc",
    "showOutput": "always",
    "windows": {
        "command": "tsc.exe"
    },
    "args": ["-p", "."],    
    "problemMatcher": "$tsc"
}

tester.ts:

module test
{
    export class test2
    {

    }
}

在课堂测试中,即使我将其更改为test.test2,test2也不会被智能感知器拾取。向test2添加变量也无济于事。

有没有人知道为什么它根本不起作用的任何可能的原因?

8 个答案:

答案 0 :(得分:6)

这是因为您告诉编译器您正在使用外部模块:

"module": "commonjs",

但你实际上是在尝试使用内部模块:

module test

最好选择其中一种方式。

外部模块

如果您使用的是外部模块 - 请使用:

test2.ts

export class test2 {

}

tester.ts

import ModuleAlias = require('test2');

export class tester {
    public testy: ModuleAlias.test2;
}

内部模块

如果您没有使用外部模块,则可以使用原始代码,但请删除"module": "commonjs"标记。

{
    "compilerOptions": {
        "out": "test.js"
    },
    "files": [
        "test2.ts",
        "tester.ts"
    ]
}

答案 1 :(得分:1)

node_modules文件夹的Intellisense在版本< = 2.0.3(当前)中不起作用。

它将在2.0.5版(https://github.com/Microsoft/TypeScript/issues/9323

中提供

暂时修复你可以使用夜间构建: npm install -g typescript @ next

它对我有用。

答案 2 :(得分:1)

对于遇到此问题的任何人,请尝试将其替换:

const { ConnectionPool } = require("mssql");

与此:

import { ConnectionPool } from "mssql"

...用于您的等效库。这解决了我的问题。

当然不要忘记同时需要实现和@type模块:

npm i mssql
npm i -D @types/mssql

答案 3 :(得分:0)

我会将tsconfig.json更新为相对路径:

January  1, 2012 | 01:01 AM

另外,史蒂夫不要混淆模块(虽然这不会出现错误)。而且,也许不要使用:https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md

答案 4 :(得分:0)

这不是打字稿的问题。

在可视代码1.9之后,它们存在安全问题。它尝试从您的Windows驱动器中读取一些数据,如果您没有权限,则它不会显示智能感知。

如果您的系统没有完全管理员权限,请卸载1.9.x版本并安装VSCodeSetup-1.8.1

这适合我。

答案 5 :(得分:0)

就我而言,我不得不选择工作空间版本而不是打字稿的VSCode版本。

单击底部蓝带中的版本号

enter image description here

然后在顶部栏中显示的选项中选择工作区版本

enter image description here

希望有帮助。

答案 6 :(得分:0)

;TLDR

检查设置 std::is_same<from,CStringArray>::value 并确保将其设置为 typescript.suggest.autoimports


我遇到了同样的问题,禁用了我的所有扩展程序,但它仍然无法正常工作。我检查了内部版本,它在同一个项目上工作 - 对我来说,这意味着两件事:

  • 这是导致问题的扩展程序(但我已禁用所有扩展程序,但它仍然没有解决我的问题,所以不可能是这个)
  • 这不是某种 true 设置,因为内部构建使用相同的配置文件。

我检查了我的用户设置文件(单击图标向您显示修改设置的 JSON 版本),发现该文件被我有一段时间没有使用的扩展程序添加的设置污染了。我开始整理这个文件并进行设置,我最终发现了这个:

enter image description here

tsconfig.json 设置为 false。我将其更改为 true,瞧 - 它开始工作了。

我不知道是什么将其更改为 false(我知道它可能是我使用的扩展名 Typescript Importer,但我不能确定。

答案 7 :(得分:0)

对我来说是参数提示不会显示。 Intellisense 工作,但当我打开一个函数括号时,我看不到任何参数提示。

我尝试了上面所有的版本管理建议,但没有解决。

最后我在 VSCodes settings.json"[typescript]" 键下找到了一个名为 editor.parameterHints.enabled 的设置。

由于某种未知的原因,这没有启用......为什么,上帝为什么。

enter image description here

现在将其设置为 true 会给我参数提示。

enter image description here

是的。