【问题标题】:How can I get the name of a variable type, when it's stored as String or Boolean?当变量类型存储为字符串或布尔值时,如何获取变量类型的名称?
【发布时间】:2020-06-28 21:37:43
【问题描述】:

Mongoose 让你输入字段类型为StringBooleanNumber 等,这些都是函数。我想将这些值作为字符串读取,因此我可以将它们用作对象键。如何从字符串中获取“字符串”,从布尔值中获取“布尔”?

var Model = {
    name: String,
    likes: Number
};

console.log('the type of name is '+Model.name)

这当然会打印出类似的内容:

the type of name is function String() {
    [native code]
}

因为我引用的是一个函数

【问题讨论】:

  • typeof Model.name

标签: javascript node.js function mongoose types


【解决方案1】:

函数对象有一个name property,它以字符串形式返回函数名。

for(const fn of [
  String,           //"String"
  Boolean,          //"Boolean"
  Number,           //"Number"
  function foo(){}, //"foo"
  class bar{},      //"bar"
  () => {},         //""
  new Function(""), //"anonymous"
]) console.log(fn.name)

在您的情况下,由于model.name 是一个函数,您可以通过model.name.name 检索其名称:

var Model = {
    name: String,
    likes: Number
};

console.log(Model.name.name)  //String
console.log(Model.likes.name) //Number

【讨论】:

    猜你喜欢
    • 2011-10-31
    • 2010-12-27
    • 2022-01-23
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    相关资源
    最近更新 更多