JavaScript / Node.js:声明字段的类型

时间:2015-02-18 03:19:25

标签: javascript node.js

如果我有以下物品:

var info = {

type:String

}

将String声明转换为类型的最佳方法是什么?

我宁愿不这样做:

var info = {

type:typeof('')

}

因为我更加明确

2 个答案:

答案 0 :(得分:1)

Javascript中的类型名称(例如,typeof x返回的内容)是小写字符串,因此如果您只是尝试设置一个显示您期望字符串类型的属性,那么您可以这样做:

var info = {
   type: "string"
}

如果你console.log(typeof "foo");,你可以自己看看。您将获得"string"作为结果类型。

然后,您可以使用此信息来检查变量x的类型,而不是您期望的那样:

if (typeof x === info.type)

答案 1 :(得分:1)

如果你真的想要,你没理由不能保留这个:

var info = {

  type:String

}

您的验证功能可能如下所示:

function check( val, schema ) {
  switch( schema.type ) {
    case String:
      return typeof val === 'string';
    case Number:
      return typeof val === 'number';
  }
}

check( 'foo', info );

当然,您可以根据需要为switch添加任意数量的类型。