我在Visual Studio 2015中遇到TypeScript intellisense时出现问题。当我尝试从Nuget上的打字切换到使用npm安装它们时,问题就出现了。我在node_modules/@types
中拥有我需要的一切,但智能感知并没有找到输入,说它无法解析模块。该项目构建没有错误,都使用Visual Studio的构建和命令行的tsc。
我目前的猜测是问题在于TypeScript I&m; m的使用版本与打字的版本相比,因为打开文件时打包文件中存在智能感知错误。例如,我使用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;
在前两行例如,我得到:
除非' - 模块'否则无法编译模块。提供标志...(整个第一行)
预期的声明或声明。 (第二行,出口下)
你明白了,这些通过文件继续。我已尝试以下方法来解决此问题:
///<reference />
标记。这样做成功地将tsx html元素(例如<div>
标签)解析为JSX.IntrinsicElements
类型,但React模块仍然无法解析,可能是因为上面列出的错误。typeroots
元素直接指向@types文件夹。我已经根据一位同事的推荐将其删除了,这是其中两位智能感知工作者之一。这是我的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中明确指出编译器的类型。
此时我已经没有线索追逐,任何新的想法都值得赞赏。感谢。
答案 0 :(得分:2)
经过一些实验后,我尝试在我之前下载的TypeScript 2.2.2安装程序上运行修复,这解决了这个问题。我不确定它是如何解决问题的,但至少它有效。