Javascript 如何获取声明为字符串/数字/日期函数的对象字段类型?

Javascript 如何获取声明为字符串/数字/日期函数的对象字段类型?,javascript,Javascript,我想得到一个对象字段的类型,它的值是String/Date/Number函数。当使用typeof运算符时,它返回函数。但我想知道它到底是哪种类型的函数。有什么办法可以做到吗 const obj = { key: String, key1: Number, key2: [String] } console.log(typeof obj.key) // returns function but i expect it to return string console.log(type

我想得到一个对象字段的类型,它的值是String/Date/Number函数。当使用typeof运算符时,它返回函数。但我想知道它到底是哪种类型的函数。有什么办法可以做到吗

const obj = {
  key: String,
  key1: Number,
  key2: [String]
}

console.log(typeof obj.key) // returns function but i expect it to return string 
console.log(typeof obj.key1) // returns function but i expect it to return number
console.log(typeof obj.key2) // returns function but i expect it to return array of string
字符串和数字是javascript中的关键字/内置函数。由于已将key指定为String,将key1指定为Number,因此typeof obj.key将与typeof String相同,并与key2类似。您可以查看prototype.constructor.name属性以确定它是字符串还是数字

常量对象={ 键:字符串, 键2:数字, 关键3:日期, } console.log'key',obj.key.prototype.constructor.name; console.log'key2',obj.key2.prototype.constructor.name; console.log'key3',obj.key3.prototype.constructor.name; console.log “是字符串吗?”, obj.key.prototype.constructor.name.toLowerCase=='string' ; console.log “数字是多少?”, obj.key2.prototype.constructor.name.toLowerCase=='number' ; console.log “这是约会吗?”, obj.key3.prototype.constructor.name.toLowerCase==='date'
;谢谢,是否可以将输出作为字符串和数字而不是函数?您希望在键中设置什么?例如,如果key:some value,那么typeof obj.key将是字符串,同样,如果key1:1233,那么typeof obj.key1将是数字,而不是类型声明。这是一个包含字符串和数字本机函数的对象。如果声明为[String]@muthu,如何获取类型?您到底想做什么?我想根据类型添加条件。类似于如果fieldDefinition.type.prototype.constructor.name.toLowerCase=='string'@muthu,那么它能工作吗?fieldDefinition.type到底是什么?@muthu请看我的编辑-如果不编写类似于上述代码的自定义代码,您就无法通过JavaScript本机获得所需的内容。如果您使用的是TypeScript,我建议您使用接口为您的对象创建一个类型,并使用它来键入您的对象。