这是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中找到 软件开发工具包\打字稿\ 1.4 \ 1.4 \ tsc.exe。您可以解决此问题 通过更改项目中的
<TypeScriptToolsVersion>
元素 文件。
我不知道为什么路径现在有额外的\ 1.4。另外,我在项目文件中找不到<TypeScriptToolsVersion>
元素。我到处搜索(包括注册表),找不到像\ 1.4 \ 1.4那样的路径。它现在正成为我的TypeScript噩梦。
答案 0 :(得分:0)
即使错误列表中存在这些错误,构建也会成功,应用程序似乎运行正常。
在存在类型错误的情况下,TypeScript不会阻止.js
emit / build。这是为了使您更容易将js代码迁移到ts。
那就是说,您发布的代码也可以正常工作: