Как я могу получить имя типа переменной, когда оно хранится как String или Boolean? - PullRequest
1 голос
/ 17 марта 2020

Пн goose позволяет вводить типы полей как String, Boolean, Number, et c., Которые являются функциями. Я хочу прочитать эти значения в виде строки, чтобы я мог использовать их в качестве ключей объекта. Как я могу получить 'String' из строки, 'Boolean' из Boolean?

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

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

это, конечно, выведет что-то вроде:

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

, так как я ссылаюсь на это функция

1 Ответ

1 голос
/ 17 марта 2020

Объекты функций имеют свойство name , которое возвращает имя функции в виде строки.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...