如何记录JavaScript/CoffeeScript数据结构
我正在寻找一种描述性的方法来记录JavaScript应用程序中使用的数据结构。由于JavaScript的动态特性,我发现很难做到这一点 例如,有什么好方法可以告诉我们,所使用的变量距离是一个长度为i和j的二维数组,存储的数字介于-1和MAX_INT之间。我可以想到这样的事情:如何记录JavaScript/CoffeeScript数据结构,javascript,documentation,coffeescript,Javascript,Documentation,Coffeescript,我正在寻找一种描述性的方法来记录JavaScript应用程序中使用的数据结构。由于JavaScript的动态特性,我发现很难做到这一点 例如,有什么好方法可以告诉我们,所使用的变量距离是一个长度为i和j的二维数组,存储的数字介于-1和MAX_INT之间。我可以想到这样的事情: distance[i][j] = -1 <= n <= MAX_INT distance[i][j]=-1当我复制大量数据模型时,我倾向于在JavaScript中编写注释中的类定义。我不确定你的问题是否就是这
distance[i][j] = -1 <= n <= MAX_INT
distance[i][j]=-1当我复制大量数据模型时,我倾向于在JavaScript中编写注释中的类定义。我不确定你的问题是否就是这个意思
// JavaScript Class jsHomeLocation
// jsHomeLocation{
// string name
// string address
// }
var jsHomeLocation = {};
jsHomeLocation.name = "Travis";
jsHomeLocation.address = "California";
您还可以使用javascript对象跟踪示例的信息,即二维数组
var distanceData = {};
distanceData.type = "two-dimensional array";
distanceData.length = i * j;
distanceData.min = -1;
distanceData.max = MAX_INT;
虽然它还没有被广泛采用(还没有),但有一个问题。我只是自己学习,但您可以为二维数组(包装在对象中)编写模式,如下所示:
或者简单地说:
{
"type":"array",
"items":{
"type":"array",
"items": {
"type":"number",
"minimum":-1,
"maximum":Number.MAX_VALUE
}
}
}
据我所知,没有CoffeeScript实现,但有几个JavaScript验证器的列表。我正在使用规范作者编写的一个名为(非常简单),我非常喜欢从CoffeeScript中调用它。注意:json模式不支持Number.MAX_值。为了你的目的,你需要扩展它。我倾向于将真正的“int”限制在2^32-1,因为按位运算符只适用于这么大的数字,但从技术上讲,在JavaScript中,尾数符合2^53的任何数字都被认为是有效的。
{
"type":"array",
"items":{
"type":"array",
"items": {
"type":"number",
"minimum":-1,
"maximum":Number.MAX_VALUE
}
}
}