visual-studio – TypeScript – Visual Studio 2015 Intellisense无法查找模块

我在Visual Studio 2015中遇到TypeScript intellisense时出现问题.当我尝试从Nuget上的typings切换到使用npm安装它们时,问题就出现了.我在node_modules / @ types中拥有我需要的所有东西但是intellisense没有找到打字,说它无法解析模块.项目构建没有错误,使用Visual Studio的构建和命令行的tsc.

我目前的猜测是问题在于我正在使用的TypeScript版本与打字的版本,因为打开文件时打包文件中存在智能感知错误.例如,我使用npm为React(v.^ 15.4.2)安装了typings(v.^ 15.0.21).当我打开已安装的index.d.ts文件时,收到许多错误:

// Type definitions for React v15.0
// Project: http://facebook.github.io/react/
// Definitions by: ...
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.2

export = React;
export as namespace React;

以前两行为例,我得到:

>除非提供’–module’标志,否则无法编译模块…(整个第一行)
>预期的声明或声明. (第二行,出口下)
>找不到’as’这个名字. (在as下)
>’;’预期. (在命名空间下)

你明白了,这些通过文件继续.我已尝试以下方法来解决此问题:

>切换到使用tsconfig文件而不是VS打字稿工具.
>让3位同事试用他们的电脑(两个智能感知工作,第三个遇到同样的问题)
>通过删除.suo文件清除智能感知缓存
>更新TypeScript工具和Visual Studio.当我开始时,我在VS2015 Update 1上运行了一个非常旧版本的TypeScript.我现在在VS2015 Update 3上使用TypeScript 2.2.2.我已经从开发人员命令提示符和包管理器控制台验证了TypeScript的版本.
>手动添加///< reference />标签指向打字文件.这样做可以成功解析tsx html元素,例如< div>标记到JSX.IntrinsicElements类型,但React模块仍然无法解析,可能是因为上面列出的错误.
>使用tsconfig中的typeroots元素直接指向@types文件夹.我已经根据一位同事的推荐将其删除了,这是其中两位智能感知工作的同事之一.
>编辑.csproj文件TypeScript部分.我将TypeScript工具版本更改为2.2,并将模块解析选项更改为Node,node和NodeJs,如下所示:https://github.com/Microsoft/TypeScript/issues/7568

这是我的tsconfig.json文件:

{
    "compileOnSave": true,
    "compilerOptions": {
        "sourceMap": true,
        "noImplicitAny": false,
         "module": "commonjs",
         "target": "es5",
         "jsx": "react"
    },
    "exclude": [ "./__Redesign/node_modules", "./__Redesign/jspm_packages" ],
    "include": [
        "./__Redesign/node_modules/@types",
        "__Redesign/app/**/*.ts",
        "__Redesign/app/**/*.tsx"
    ]
}

我的tsconfig位于站点根目录中,package.json文件位于名为__Redesign的文件夹中,同时还包含node_modules文件夹.这就是为什么我认为我可能需要在tsconfig中明确指出编译器的类型.

在这一点上,我已经没有引导追逐,任何新的想法都受到赞赏.谢谢.

最佳答案 经过一些实验,我尝试在我之前下载的TypeScript 2.2.2安装程序上运行修复,这解决了这个问题.我不确定它是如何解决这个问题的,但至少它是有效的.

点赞