【问题标题】:How can I get the string of a type in JavaScript/TypeScript?如何在 JavaScript/TypeScript 中获取类型的字符串?
【发布时间】:2017-10-26 23:25:40
【问题描述】:

在 C# 中你可以这样做:

string typeName = typeof(int).FullName;

typeName 的值将是System.Int32。 (参考this question)。

所以,我的问题是,我怎样才能在 JavaScript 或 TypeScript 中实现相同的功能?

请注意,我不想从object 中获取类型名称,我只想从类似于上面示例代码的类型中获取它。

【问题讨论】:

  • 我认为想要在 javascript 中执行此操作毫无意义,因为 ; a : Javascript 是弱类型的(尝试做"1" == true),和 b : javascript 知道的唯一类型是相当描述它们是什么。为什么你需要这 6 种左右带有“强”名称的类型?
  • 我能找到的唯一与您所要求的内容接近的事情是执行typeof Number() 之类的操作,它会输出 "number"(令人震惊,对吗?)
  • (但不要这样做typeof Number,因为那样会返回"function"
  • 坦率地说,我其实是想在 TypeScript 中使用这个功能

标签: javascript typescript templates reflection


【解决方案1】:

在Javascript中你可以使用

typeof variable_name

【讨论】:

  • 不是函数,是关键字,所以不需要括号。
  • @Tom 是的,你是对的,所以我已经更正了答案
  • @Tanmay 感谢您的回答,但这不是我想要的答案,因为我在问题中已经提到我不想从对象中获取类型名称。我想直接从类型本身获取它。
  • @Wong Jia Hau 在 Javascript 中,只有一种声明变量的方法,即。 var 变量名;因此,使用 Javascript 无法实现您的目标。
【解决方案2】:

我刚刚发现Node.js中的type-name包可以解决这个问题。

【讨论】:

    【解决方案3】:

    var typeName = 5;

    这样您就可以在 javascript 中添加一个简单的警报。

    一个例子,

    alert(typeof typeName);

    就是这样。

    【讨论】:

    • 这在javascript typescript中不起作用,而且没有意义。
    • 兄弟我已经尝试过很多次了,如果你只是想知道你的变量类型,使用 typeof 是最简单的方法。 codepen.io/iwanWijaya/pen/eeOmmj?editors=1111
    • 我说的是您在此处发布的代码。尝试在控制台或打字稿中运行var string typeName = 5,它会告诉你有语法错误。
    • 我的错,我只是忘记了,只是把字符串单词收起来。怪我。
    • @IwanWijaya 在您改进答案的同时。你听说过code tags吗?还是解释事物的感觉?看看How do I write a good answer 以供参考。
    猜你喜欢
    • 2015-01-24
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    相关资源
    最近更新 更多