【问题标题】:TypeScript compiler error: Expected ';' or ']'TypeScript 编译器错误:应为“;”或者 ']'
【发布时间】:2015-05-19 01:09:19
【问题描述】:

这是 VS 2013 中的一个节点项目,安装了 TypeScript 工具和 Web Essential(但没有 Resharper)。我正在将我的 javascript 转换为打字稿,而且似乎进展顺利。但是,我在错误列表中遇到了很多错误,例如

Error   1   Expected ';'    C:\Azure\public\js\prototypes.ts    6   11  
Error   2   Expected ',' or ']' C:\Azure\public\js\prototypes.ts    7   13  
Error   3   Expected ';'    C:\Azure\public\js\prototypes.ts    7   22  
Error   4   Expected ','    C:\Azure\public\js\prototypes.ts    13  30  
Error   5   Expected '{'    C:\Azure\public\js\prototypes.ts    13  40  
Error   6   Expected ';'    C:\Azure\public\js\prototypes.ts    13  49  

这是prototypes.js的前几行:

/// <reference path="../../typings/moment/moment.d.ts" />
'use strict';
//-------------------------------------------------
// Math
//-------------------------------------------------
interface Math {
    lg(value: number): number;
    roundUp(value: number, digits: number): number;
    roundDown(value: number, digits: number): number;
}

if (!Math.lg) {
    Math.lg = function (value: number) : number {
        return Math.log(value) / Math.LN10;
    };
}
if (!Math.roundUp) {
    Math.roundUp = function (value, digits) {
        var factor = Math.pow(10, Math.floor(Math.lg(Math.abs(value))) - digits || 0);
        return Math.ceil(value / factor) * factor;
    };
}
if (!Math.roundDown) {
    Math.roundDown = function (value, digits) {
        var factor = Math.pow(10, Math.floor(Math.lg(Math.abs(value))) - digits || 1);
        return Math.floor(value / factor) * factor;
    };
}

奇怪的是,即使错误列表中有这些错误,构建成功并且应用程序似乎运行良好。我也试过卸载 WebEssential 和 TypeScript 工具,然后重新安装,但没有区别。

它在抱怨什么?

更新:

当我看到 1.5Beta 时,我立即安装了它。令我失望的是,我得到了更多的错误。然后,我决定回滚到 1.4。但更糟糕的是......现在当我打开同一个项目时它会抱怨

您的项目文件使用不同版本的 TypeScript 编译器和工具比当前安装在这台机器上。不 编译器位于 C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.4\1.4\tsc.exe。您也许可以解决此问题 通过更改项目中的 &lt;TypeScriptToolsVersion&gt; 元素 文件。

我不知道为什么路径现在多了一个 \1.4。另外,我在项目文件中找不到&lt;TypeScriptToolsVersion&gt; 元素。我到处搜索(包括注册表),但找不到像 \1.4\1.4 这样的路径的任何地方。现在它正在成为我的 TypeScript 噩梦。

【问题讨论】:

  • 确保您安装了最新版本的 TypeScript for Visual Studio,已经有 1.5beta。但你至少需要version 1.4

标签: visual-studio typescript web-essentials


【解决方案1】:

即使错误列表中有这些错误,构建成功并且应用程序似乎运行良好。

TypeScript 不会在存在类型错误的情况下阻止 .js 发出/构建。这是为了方便你将js代码迁移到ts。

也就是说,您发布的代码也可以正常工作:

【讨论】:

  • 很好,如何摆脱这些错误?这有点烦人。
  • 更新您的视觉工作室或使用其他编辑器 (atom.io/packages/atom-typescript)。这里没有 TypeScript 错误(至少对于当前版本的 typescript)
  • 哦,好吧……这是 Visual Studio 的问题,还是 TypeScript Tools 的问题,还是 Web Essentials 的问题?
  • 是的。这三个之一。不是 TypeScript 问题
猜你喜欢
  • 2016-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 2017-04-02
  • 2017-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多