Typescript 找不到名称';要求';打字

Typescript 找不到名称';要求';打字,typescript,visual-studio-2015,Typescript,Visual Studio 2015,根据这些建议,这个问题已经被问了很多次,但我没有看到任何答案能解决我的问题 我在Visual Studio 2015中创建了一个新的ASP.NET核心项目,目标是为Angular2 TypeScript应用程序提供服务,并使用Webpack打包脚本。我正在重新利用Webstorm项目中的一些组件(同样的东西——Angular2和TypeScript),它在那里工作得很好 不幸的是,我只是复制了第一个组件,发现我遇到了一个无法自行解决的错误。在VisualStudioIDE中,我在“require

根据这些建议,这个问题已经被问了很多次,但我没有看到任何答案能解决我的问题

我在Visual Studio 2015中创建了一个新的ASP.NET核心项目,目标是为Angular2 TypeScript应用程序提供服务,并使用Webpack打包脚本。我正在重新利用Webstorm项目中的一些组件(同样的东西——Angular2和TypeScript),它在那里工作得很好

不幸的是,我只是复制了第一个组件,发现我遇到了一个无法自行解决的错误。在VisualStudioIDE中,我在“require”下看到红色的曲线,鼠标上方的文本显示“找不到名称'require'。无法解析符号'require'

以下是有问题的组件文本(webpack/Angular2使用的require语法):

类似地,我对require的以下代码片段也有同样的问题:

const sortBy = require('lodash.sortby');
现在,POST有了一个新功能,我可以将typeRoots和类型添加到tsconfig.json的编译器选项中。我在这里看到:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "typeRoots": [
      "node_modules/@types"
    ],
    "types": [
      "node",
      "lodash.sortby"
    ]
  }
}
当然,我已经将这些包添加到我的package.json中:

{
  "dependencies": {
    "lodash.sortby": "^4.7.0"
  },
  "devDependencies": {
    "@types/node": "^6.0.60",
    "@types/lodash.sortby": "^4.7.0"
  }
}
我已经成功地安装了这些文件(以及许多其他文件)

上面的后一个链接表明,我可以将以下内容放在文件的顶部,但这似乎有点骇人听闻,我并不想在解决方案中无限期地坚持下去,尽管无可否认,它确实解决了问题:

declare var require: any
如前所述,require的这种用法在Webstorm中运行良好,我在两个IDE之间有相同的配置。VisualStudio到底是怎么回事,这不只是工作吗

谢谢

编辑:

我已经了解了angular2模板加载器的存在。因为我想在这里使用Webpack和Angular2,所以我使用require(根据他们的文档),但是这个Angular2模板加载器负责让您将templateUrl和StyleURL作为相对引用(因此不使用require指向文件)在包装过程中,我们会为您交换所有的东西

使用require anywhere仍然需要Gary的Typescript模块链接中描述的解决方法。

请检查

现在可能不可能,因为commonjs是一个模块系统


根据编译期间指定的模块目标,编译器将为Node.js(CommonJS)、require.js(AMD)、isomorphic(UMD)、SystemJS或ECMAScript 2015本机模块(ES6)模块加载系统生成适当的代码。有关在生成的代码中定义、要求和注册调用的详细信息,请参阅每个模块加载程序的文档。

我通过安装最新(目前)版本的Visual Studio 2015 TypeScript解决了此类问题。目前是。并将ReSharper更新到2016.3.2版。

。要求是模块<代码>根据编译期间指定的模块目标,编译器将为Node.js(CommonJS)、require.js(AMD)、isomorphic(UMD)、SystemJS或ECMAScript 2015本机模块(ES6)模块加载系统生成适当的代码。有关在生成的代码中定义、要求和注册调用的更多信息,请参阅每个模块加载器的文档。@Gary您能否将其作为答案写出,以便我可以这样标记?
declare var require: any