如果我有以下物品:
var info = {
type:String
}
将String声明转换为类型的最佳方法是什么?
我宁愿不这样做:
var info = {
type:typeof('')
}
因为我更加明确
答案 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
添加任意数量的类型。