在新的角度webpack设置中包含类型定义文件的位置

时间:2016-10-11 14:20:24

标签: angular typescript webpack webstorm angular-cli

我们最近搬到了最新的角度2.0,并开始使用angular-cli,webpack来构建我们的应用程序。截至目前,当我们使用ng测试,构建等时,应用程序运行正常并提供所需的输出,但是,自动编译(使用webstorm)总是会产生大量错误。之前我们曾经提供过一个main.ts,它在术语上指的是其他d.ts文件。 main.ts用于tsconfig.json。所以一切顺利,没有任何错误。 例如像这样的简单测试会为describe,it,expect发出静态编译错误。

describe("it is a suite",()=>{
it("it is a test",()=>{
expect(1).toBe(2);
})
});

如果我在此测试文件中包含jasmine.d.ts文件引用,则一切都会消失。

包括来自' @ angular / core / testing'抛出没有这样的导出成员的错误。

所以,问题 - 我们应该在哪里以及如何包含类型定义文件以避免这种静态编译?

更多信息 - 在webstorm设置中,我选择了捆绑(1.8.10)版本和启用的typescript编译器,我使用的是tsconfig.json

tsconfig.json包含来自angular-cli项目here的内容 添加在文件部分包括main.ts和typings.d.ts

typing.d.ts没有任何内容,因为main.ts包含对' typings'中引用的其他d.ts文件的引用。根目录下的文件夹。

2 个答案:

答案 0 :(得分:1)

问题是WebStorm中的TypeScript配置。

Angular需要TypeScript版本2或更高版本。其中一个主要原因是通过安装在@types范围内的npm软件包来协调类型信息。

正如您所看到的,here @types/jasmine是一个开发依赖项,它将提供describeitexpect的类型信息。

答案 1 :(得分:0)

Angular 2的Webstorm Typescript配置

如果您使用的是实际的angular-cli版本1.0.0-beta.17,则需要将打字稿版本从捆绑版本1.8.10 更改为打字稿版本 2.0.2 这是由angular-cli通过package.json安装的。

可以这样做:

在对话框中

设置/语言& frameworks / typescript /配置TypeScript编译器

选择自定义目录:“YourProjectDir”/ \ node_modules \ typescript \ lib

对话框中的

设置/语言&框架/打字稿

检查编译器启用类型脚本编译器和 选择使用tsconfig.json

因为你已经完成了。

这就是你所要做的。 你不需要来安装任何茉莉花的打包(不再是)。正如@Brocco在他的回答中所描述的那样,这是由@clales / jasmine的angular-cli完成的。

如果您不使用Angular-cli:

npm install @types/jasmine --save-dev