【问题标题】:Visual Studio Code Intellisense Typescript not workingVisual Studio Code Intellisense 打字稿不工作
【发布时间】:2015-08-04 08:47:26
【问题描述】:

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

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

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

tsconfig.json:

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

tasks.json:

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

test2.ts:

module test
{
    export class test2
    {

    }
}

tester.ts:

module test
{
    export class tester
    {
        public testy: test2;
    }
}

在类测试器中,intellisense 不会拾取 test2,即使我将其更改为 test.test2。向 test2 添加变量也无济于事。

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

【问题讨论】:

  • 从 tsconfig.js 中完全删除 files
  • 这些方法有用吗?我有一些问题,最初 VS Code 为某些库(如 angular)提供智能,但当我添加新库(如 lodash 或 moment)时,它就停止工作了。当我为自己的代码添加新的打字稿类时,它也完全停止工作。这很令人困惑,因为文档建议这应该有点工作......
  • 不是真的,它在 windows 和 linux 上确实有问题。只要项目的根目录中有一个 tsconfig.json 文件,Intellisense 似乎就可以很好地处理“.d.ts”文件。每当在 VSCode 中创建/添加新的“.ts”文件时,除非您关闭并重新打开 VSCode,否则它不会为其获取任何智能感知。
  • 好的,我最终通过手动杀死所有与 VSCode 相关的进程来让它工作。希望随着他们开发编辑器,这会变得更加稳定。我开始使用它是因为 Sublime(我常用的编辑器)中的 TypeScript 支持仍然很不稳定。

标签: javascript typescript visual-studio-code


【解决方案1】:

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

点击底部蓝带中的版本号

并在顶部栏中显示的选项中选择工作空间版本

希望对您有所帮助。

【讨论】:

  • 我什至看不到蓝丝带中的打字稿版本。知道为什么吗?
  • 您能在“查看”下看到“显示状态栏”选项吗?那应该可以完成这项工作。
  • 应该标记为正确答案。谢谢!
  • 谢谢。经过几个小时的搜索终于来到了这里。干杯
  • @azizj1 和其他可能仍面临同样问题的人。转到扩展并搜索@builtin typescript and javascript 并启用TypeScript and JavaScript Language Features
【解决方案2】:

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

"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"
    ]
}

【讨论】:

  • 当我使用内部模块时,删除模块参数无济于事,智能感知仍然不起作用。但是,我确实注意到关闭 IDE 并重新打开,然后智能感知就会启动。但是,如果我创建一个新文件,那么智能感知就会停止为新文件工作。完全删除模块也无济于事。由于我使用的是构建系统,因此无法选择使用外部模块。
  • 我添加了一个关于如何为内部模块修复它的额外说明。
【解决方案3】:

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

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

有了这个:

import { ConnectionPool } from "mssql"

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

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

npm i mssql
npm i -D @types/mssql

【讨论】:

    【解决方案4】:

    node_modules 文件夹的 Intellisense 在版本

    它将在 2.0.5 版本中提供 (https://github.com/Microsoft/TypeScript/issues/9323)

    要临时修复,您可以使用夜间构建: npm install -g typescript@next

    它对我有用。

    【讨论】:

      【解决方案5】:

      这不是打字稿的问题。

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

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

      这对我有用。

      【讨论】:

        【解决方案6】:

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

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

        正如 steve 所提到的,不要混合模块(尽管这不会出现错误)。而且,也许不要用掉:https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md

        【讨论】:

          【解决方案7】:

          ;TLDR

          检查设置typescript.suggest.autoimports 并确保它设置为true


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

          • 这是导致问题的扩展程序(但我已禁用所有扩展程序,但仍然无法解决我的问题,所以不可能是这样)
          • 这不是 tsconfig.json 设置,因为内部版本使用相同的配置文件。

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

          typescript.suggest.autoimports 设置为 false。我把它改成了真的,瞧——它开始工作了。

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

          【讨论】:

            【解决方案8】:

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

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

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

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

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

            是的。

            【讨论】:

              猜你喜欢
              • 2019-06-10
              • 2016-02-07
              • 2022-01-04
              • 1970-01-01
              • 2017-01-07
              • 2023-03-24
              • 1970-01-01
              • 2012-10-23
              • 2019-11-05
              相关资源
              最近更新 更多