2012-02-10 18 views
2

我在http://prettydiff.com/prettydiff.js有一个应用程序。我在开始写解释器之前就开始编写这个应用程序,并且学会了更加严格的打字。我现在想要在我的代码中执行严格的输入。此应用程序太大且复杂,无法轻松验证类型强制是否已从手动更改中成功消除。工具自动警告JavaScript中的类型改变?

是否有任何工具或方法,以警告或者类型的变化已经发生任何给定的基准电压检测?

+0

不,我知道的。你不能真正强制使用自己不强制执行的语言强行输入。相反,您可以使用GWT编写所有内容,例如,您拥有Java的强大类型,然后将其编译为JS。不过,我认为你最好为你的应用程序编写一个好的测试套件,然后运行它来检查你的更改。尝试在JS中进行强大的输入与谷物相反。 – Flambino 2012-02-10 13:57:45

+0

@Flambino我同意,在JavaScript的强类型是有点如果你是这样从一开始就纪律挑战,但它仍然是最新的解释没有少的价值偏好。 – austincheney 2012-02-10 14:01:19

+0

在代码更改之后,您想知道任何变量或参数的类型是否已更改? – 2012-02-10 18:01:37

回答

0

怎么样这样的事情?

function setValue(varName, varValue) { 
    if (typeof(eval("varName")) != typeof(varValue)) { 
     console.log("Variable "+varName+" changed type."); 
    } 
    eval(varName+"=varValue;"); 
} 

这是习俗,但可能会做严格的类型验证

var n = 100; 
setValue("n", 20); // updates to 20 
setValue("n", "Hello"); // updates to "Hello", and prints the warning in console