簡體   English   中英

TypeScript編譯器錯誤:預期為';' 要么 ']'

[英]TypeScript compiler error: Expected ';' or ']'

這是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中找不到編譯器。 您可以通過更改項目文件中的<TypeScriptToolsVersion>元素來解決此問題。

我不知道為什么路徑現在多了\\ 1.4。 另外,我在項目文件中找不到<TypeScriptToolsVersion>元素。 我到處搜索(包括注冊表),卻找不到具有\\ 1.4 \\ 1.4之類路徑的任何地方。 現在這已經成為我的TypeScript噩夢。

即使在“錯誤”列表中有這些錯誤,構建仍成功,並且該應用程序似乎運行良好。

在出現類型錯誤的情況下,TypeScript不會阻止.js發出/生成。 這是為了使您更輕松地將js代碼遷移到ts。

也就是說,您發布的代碼也可以正常工作:

在原子打字稿中測試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM