2017-03-20 49 views
0

我是Angular,TypeScript和Angular 2的新手。我可以在命令行工具中使用Angular 2 quickstart示例,但我努力使其在Visual Studio 2015中工作。我发现有一个有类似于我的问题的帖子数量,因为它听起来像一个重复的,但我找不到任何完全解决我的问题。我试图遵循的快速入门说明是Angular 2 Quickstart 在项目文件中,我指定了TypeScipt 2.0,如下所示: enter image description here 在Windows命令行中,我输入tsc -v并返回版本2.2.1。当我尝试在Visual Studio 2015 SP3中运行angular 2 quickstart时,为什么会出现TS2345错误?

我输入npm -v,然后得到4.4.1。

Solution Structure

当我建,我收到以下错误以下在我的输出。

ILD开始:项目:Angular2E,配置:调试任何CPU ------ 1> C:\用户\ rpeterson \文件\的Visual Studio 2015年\项目\ Angular2E \ Angular2E \ E2E \ app.e2e- spec.ts(12,57):错误TS2345:构建:类型'字符串'的参数不能分配给'Expected>'类型的参数。 ==========构建:0成功,1失败,0最新,0跳过==========

当我打开app.e23- spect.ts文件,我从github存储库中取出,

我得到 从'量角器'导入{browser,element,by};

describe('QuickStart E2E Tests', function() { 

let expectedMsg = 'Hello Angular'; 

beforeEach(function() { 
    browser.get(''); 
}); 

it('should display: ' + expectedMsg, function() { 
    expect(element(by.css('h1')).getText()).toEqual(expectedMsg); 
}); 

}); 

我不明白什么是TS2345错误的真正含义,除了它似乎是与TypeScript相关的东西。

我不知道它是否有意义或有帮助,但Visual Studio 2015 SP3在“describe”,“beforeEach”,“it”,“expect”中给出了一些曲线,当我鼠标超越时, “无法找到名称描述”等。

我检查了安装的Nuget软件包和Typescript.compiler v2.0.0。已安装。

这些是我的项目中的参考资料。 enter image description here

我是否缺少软件包?我有没有配置错误的项目。任何见解或建议将不胜感激,因为我真的不知道该从哪里出发。

+0

我的tsc版本目前是2.2.1。 –

+0

我想我可能已经通过从https://www.microsoft.com/en-us/download/confirmation.aspx?id=48593安装Visual Studio 2015的TypeScript工具来部分解决了这个问题。现在,TS2345错误给了我。严重\t代码\t说明\t项目\t文件\t线\t抑制状态 错误\t \t体形:类型“字符串”的参数是不能分配给“应为<无极>”类型的参数。 \t Angular2E \t C:\ Users \ rpeterson \ Documents \ Visual Studio 2015 \ Projects \ Angular2E \ Angular2E \ e2e \ app.e2e-spec.ts \t 13 –

回答

0

我很高兴与大家分享我已经成功地获得了Angular 2快速入门项目,并在Visual Studio 2015 SP 3中运行。所以,回顾一下,我在Windows命令行中用tsc -v检查了我的tsc版本发现我有版本2.2.1。我用npm -v在命令行上检查了我的节点版本,发现我的npm版本是4.4.1。修复的第一部分是我必须为Visual Studio 2015 SP 3安装TypeScript Tools的更新版本。这似乎弥补了大部分打字稿生成错误。通过编辑Angular 2快速启动项目附带的app.e2e-spec.ts文件修复了最终的构建错误。请注意,当我在Node中测试这个项目时,它工作。似乎并没有在Visual Studio中的工作线是

expect(element(by.css('h1')).getText()).toEqual(expectedMsg); 

我不得不此行更改为

expect<any>(element(by.css('h1')).getText()).toEqual(expectedMsg); 

我承认我依然对原因有点不清楚,但是这并获得成功。

相关问题