Upcast

JavaScript 类型检查/转换库
授权协议 MIT
开发语言 JavaScript
所属分类 Web应用开发、 网页开发工具
软件类型 开源软件
地区 不详
投 递 者 白子明
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Upcast 是一个低级别 JavaScript 类型检查和转换库。Upcast 简化了类型检查,并以比使用普通的 JavaScript 更明智和可预测的方式在类型之间进行转换。

入门

可以使用 Node.js 和 yarn/npm 在服务器端使用 Upcast :

$ yarn add upcast
$ npm install upcast

用法

Upcast 有三个简单的函数:

  • type : 获取对象的类型
  • is : 检查对象是否属于给定类型
  • to:将对象转换为特定类型

upcast.type

获取对象的类型。这接受一个参数:val: 要获取类型的对象。

请参阅下面的示例:

upcast.type([]); // 'array'
upcast.type(true); // 'boolean'
upcast.type(function () {}); // 'function'
upcast.type(null); // 'null'
upcast.type(123); // 'number'
upcast.type({}); // 'object'
upcast.type('foo'); // 'string'
upcast.type(undefined); // 'undefined'

upcast.is

检查对象是否属于给定类型。这接受两个参数: val: 要检查其类型的对象。 类型:要检查的类型。

该函数允许使用类型别名

upcast.is('foo', 'string'); // true
upcast.is(123, 'string'); // false

upcast.is([], 'array'); // true
upcast.is([], 'object'); // false

upcast.is(null, 'null'); // true
upcast.is(null, 'object'); // false

upcast.to

将对象转换为特定类型。这接受两个参数: val: 要转换的对象。 类型:要转换为的类型。

类型转换的方式旨在合理并允许轻松地来回切换常见类型。

upcast.to('foo', 'array'); // ['f', 'o', 'o']
upcast.to(['f', 'o', 'o'], 'string'); // 'foo'

 

  • 如果是多继承,并且 upcast到不同的接口的时候,需要用dynamic_cast 比如,下面的代码,第37行一定要用 dynamic_cast,因为它是从一个 基类接口转到另外一个基类借口。 1 class A 2 { 3 public: 4 virtual bool IsA(void) = 0; 5 protected: 6 int

  • 多态是一种运行时的行为,就是说在编译的时候,父类型的引用仍不知道它指向的是哪个对象,只有在运行的时候,它才会清楚自己指向哪个对象!~~ public class PolyTest4 { public static void main(String[] args) { A a=null; if(args[0].equals("1")) { a=new B(); } else if(args[0].e

  • package pkg; //base class Furniture{ void sayHello() { System.out.println("Furniture: hello!"); } } //extends 1 class Chair extends Furniture{ void sayHello() { System.out.println("Chair: hello

  • package pkg; public class p148 { public static void main(String[] args) { A a1 = new A(); A a2 = new B();//KEY point //创建B对象,转化成A对象,拥有的成员函数:BshowA,AshowD B b = new B(); C c = new C(); D

  • test1( ) needs the downcast to call f( ), while test2( ) doesn’t need a downcast because f( ) is defined in the base class. /****************** Exercise 4 ***************** * Create an abstract class

  • class Useful { int value = 20; public void f() {System.out.println("f() in the Useful class");} public void g() {System.out.println("g() in the Useful class");} } class MoreUseful extends Useful { int

  • 使用过面向对象编程(OPP)的都知道,多态是OPP的一个主要特性之一。Java做为一种OPP语言,其也有多态特性。 那么什么是多态呢? 多态 指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用) 先举个例子,我们定义Shape类,Square和Circle继承Shape类,并重载其draw方法。 public class Shap

  • 简单的说向上造型就是指将子类的对象当做是父类对象来看待. 下面我们来具体看一下:         设:   Student 继承自 Person         则:                    Student                Person                 Student *              Person *                 Stu

  • #include <iostream> #include <memory> class A{ public:     virtual ~A() =default;//must have a virtual otherwise complie err: not polymorphic }; class B: public A{ }; typedef std::shared_ptr<A> APtr;

 相关资料
  • 问题内容: 在我的spring应用程序上下文文件中,我有类似以下内容: 在java类中,实现如下所示: 在Eclipse中,我看到一条警告: 类型安全性:未经检查的从Object到HashMap的转换 我做错了什么?我该如何解决该问题? 问题答案: 好吧,首先,你正在通过新的HashMap创建调用浪费内存。你的第二行完全忽略了对此创建的哈希图的引用,从而使该哈希图可用于垃圾收集器。因此,不要这样做

  • 我在这里遇到了一个关于带列表的泛型有界类型的小问题。请帮帮我! 有什么方法可以克服这个问题,或者我可以安全地压制警告吗?

  • Rust 在基本类型之间没有提供隐式类型转换(强制类型转换)(implicit type conversion,coercion )。不过使用 as 关键字进行显式类型转换(explict type conversion,casting)。 一般来说,Rust 的整型类型的转换规则遵循 C 语言的惯例,除了那些在 C 语言是未定义行为的情况。在 Rust 中,所有的整型类型转换的行为都得到了很好的

  • 类型转换可以判断实例的类型,也可以将该实例在其所在的类层次中视为其父类或子类的实例。 Swift 中类型转换的实现为 is 和 as 操作符。这两个操作符使用了一种简单传神的方式来检查一个值的类型或将某个值转换为另一种类型。 如同协议实现的检查(此处应有链接)中描述的那样,你还可以使用类型转换来检查类型是否遵循某个协议。 为类型转换定义类层次 你可以在类及其子类层次中使用类型转换来判断特定类实例的

  • String可以与整型和浮点型互相转换。 整形 String转Int String s("1234"); long value = s.toInt(); Int转String String s(1234); 浮点型 String转Float String s("1234.56"); double value = s.toFloat(); Float转String String s(1234.

  • Variant对象提供的toXXX系列函数可以将标量(Scalar)变量转换为其他类型。Zend字符串、数组、对象可直接使用构造方法进行转换,但必须保证传入的Variant对象必须为该类型,否则底层会抛出致命错误。 转为整型 long value = var.toInt(); 转为浮点型 double value = var.toFloat(); 转为布尔型 bool value = var.

  • 本页包含内容: 定义一个类层次作为例子 检查类型 向下转型(Downcasting) Any和AnyObject的类型转换 类型转换可以判断实例的类型,也可以将实例看做是其父类或者子类的实例。 类型转换在 Swift 中使用is 和 as操作符实现。这两个操作符提供了一种简单达意的方式去检查值的类型或者转换它的类型。 你也可以用来检查一个类是否实现了某个协议,就像在 Checking for Pr

  • 大多数情况下,运算符和函数会自动将赋予它们的值转换为正确的类型。 比如,alert 会自动将任何值都转换为字符串以进行显示。算术运算符会将值转换为数字。 在某些情况下,我们需要将值显式地转换为我们期望的类型。对象还未纳入讨论中 在本章中,我们不会讨论 object 类型。目前,我们将只学习原始类型。 之后,在我们学习完 object 类型后,我们会在 对象 — 原始值转换 一章中学习对象 — 原始