当我尝试在Visual Studio 2015 SP3中运行angular 2 quickstart时,为什么会出现TS2345错误?

时间:2017-03-20 17:20:34

标签: angular visual-studio-2015

我是Angular,TypeScript和Angular 2的新手。我可以在命令行工具中使用Angular 2快速入门示例,但我很难在Visual Studio 2015中使用它。我看到有一些帖子的问题类似于我的,因为它听起来像是重复的,但我找不到任何完全解决我的问题。我试图遵循的快速入门说明是Angular 2 Quickstart 在项目文件中,我已经指定了TypeScipt 2.0,如下所示: enter image description here 在Windows命令行中,输入tsc -v,然后报告版本2.2.1。

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

Solution Structure

构建时,我的输出中出现以下错误。

ild启动:项目:Angular2E,配置:调试任何CPU ------ 1> C:\ Users \ rpeterson \ documents \ visual studio 2015 \ Projects \ Angular2E \ Angular2E \ e2e \ app.e2e-spec.ts(12,57):error TS2345:Build:类型'string'的参数不可分配到“预期>”类型的参数。 ==========构建:0成功,1个失败,0个最新,0个跳过==========

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

我明白了     从'量角器'导入{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

我错过了一个包吗?我是否将项目配置错误。任何见解或建议将不胜感激,因为我老实说不知道从哪里去。

1 个答案:

答案 0 :(得分:1)

我很高兴地分享我已成功获得Angular 2 Quickstart项目以在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的更新版本。这似乎弥补了大多数typescript构建错误。通过编辑Angular 2 Quickstart项目附带的app.e2e-spec.ts文件来修复最终的构建错误。请注意,当我在Node中测试此项目时,它工作正常。在Visual Studio中似乎不起作用的行是

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

我必须将此行更改为

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

我承认我仍然有点不清楚原因,但这就行了。