Upcast 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Upcast 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Upcast 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Upcast 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Upcast 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
操作系统 跨平台
软件类型 开源软件
开源组织
地区 不详
投 递 者 Alias_Travis
适用人群 未知
收录时间 2021-10-19

软件简介

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'

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2015/04/06 19:29

java 通配符的使用-upcast

package localevidence; //: generics/UnboundedWildcards1.java //: generics/CovariantArrays.java class Fruit {} class Appleee extends Fruit {} class Jonathan extends Appleee {} class Orange extends Fruit {} public class Testwildcats { public static void main(String[] args) { Fruit[] fruit = new Appleee[10]; fruit[0] = new Appleee(); // OK fruit[1] = new Jonat...

0
0
发表了博客
2016/01/21 11:07

Java基础-类型转换与多态

我们之前使用类创造新的类型(type),并使用继承来便利我们创建类的过程。我将在这一讲中深入类型,并介绍多态(polymorphism)的概念。 类型检查 Java的任意变量和引用经过类型声明(type declaration),才能使用。我们之前见过对象数据、类数据、方法参数、方法返回值以及方法内部的自动变量,它们都需要声明其类型。Java是一种强类型(strongly typing)语言,它会对类型进行检查。如果我们错误的使用类型,将造成错误。 类型不符,...

0
0
2018/04/20 19:27

数据挖掘 numpy之数组计算

数组的算数运算都是基于元素的运算: a = array([20, 30, 40, 50]) b = arange(4) print("a: ", a, "\nb: ", b) c = a - b # 元素相减, 元素数目应一致 print("c = a - b: ", c) print("b**2: ", b**2) print("10*sin(a): ", 10*sin(a)) print("a < 35: ", a < 35) # 元素变成bool值 a: [20 30 40 50] b: [0 1 2 3] c = a - b: [20 29 38 47] b**2: [0 1 4 9] 10*sin(a): [ 9.12945251 -9.88031624 7.4511316 -2.623748...

0
0
发表了博客
2019/08/07 20:01

java 集合类 列表

Dissecting the Program Line 2-4 imports the collection framework classes and interfaces reside in the java.util package. The class hierarchy of the ArrayList is shown above. We observe that ArrayList implements List, Collection and Iterable interfaces. The Collection and Iterableinterfaces define the common behaviors of all the collection implementations. Interface Collection defines how to add...

0
0
发表了博客
2016/04/15 00:06

一个JAVA class的秘密

今天看了刘欣写的《我是一个java class》感觉很有意思,最近刚好在看JAVA的构造函数,今天坐火车无聊有点时间,狗尾续貂写了这篇小说,仓促中写成有不少问题,请大家指正。 2016年4月14日 从北京到呼和浩特的火车上 一个JAVA class的秘密 (一)诞生 我突然有了意识,我感觉到一阵疼痛,就像什么力量突然划出内存的一片空间,把我突然塞了进来,不!使我诞生,接着这股力量开始在我的身体里塞东西。 我感觉到那股力量正在外部搜索...

0
9
发表了博客
2020/05/12 07:21

float16/32/64对神经网络计算的影响

https://www.maixj.net/ict/float16-32-64-19912 float16/32/64对神经网络计算的影响 神经网络的计算,或者说深度学习的计算,全都是浮点数。浮点数的类型分16/32/64(128位的不再考虑范围内,numpy和python最大只到float64),选择哪一种浮点数类型,对神经网络的计算有不同的影响。以下是近期的学习总结: (1)目前业界深度学习的标准是BF16,一种16位的浮点数,据说Google的TPU已经支持,未来Intel的芯片也会支持; (2)我...

0
0
发表了博客
2018/04/11 16:31

pattern matching is C# 7.0

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/is 原来的版本 private static string DateTimeFormat(DateTime date) { string result = string.Empty; if (Logger == null) { return result; } var appenders = GetAppenders(); var appender = appenders.FirstOrDefault(x => x ...

0
0
发表了博客
2013/07/29 23:06

Polymorphism

Binding Binding指的是将一个方法调用关联到一个方法体的过程。如果binding在程序运行之前执行(通过编译器和链接器)就叫做early binding,比如C语言,只有early binding。如果binding发生在程序运行时就叫late binding,也叫动态binding或者runtime binding。 Java中的binding java中的方法除了final,static和private的都是用late binding。 错误之一:override private method 先看代码: public class Test6 {   public st...

0
3
发表了博客
2013/07/31 23:33

Interfaces

抽象类和抽象方法 一个类中有一个以上的抽象方法,这个类就必须作为抽象类,用abstract修饰。 如果你继承一个abstract类并且想创建新类型的对象,你就必须提供父类抽象方法的实现。如果不提供所有的抽象方法的实现,那么编译器认为你新建的子类仍然是抽象类,强制你用abstract修饰子类。 可以用abstract修饰某个类而不引入任何抽象的方法。这表示虽然这个类提供抽象方法没意义,但是你不想那个类的实例被创建。 接口 接口实现了...

0
0
发表于服务端专区
2014/07/04 13:41

think in java -Enum

# enum Shrubbery {     GROUND, CRAWLING, HANGING }    public static void main(String[] args) {     for (Shrubbery s : Shrubbery.values()) {         System.out.println(s + ", ordinal: " + s.ordinal());         System.out.println(s.compareTo(Shrubbery.CRAWLING));         System.out.println(s.equals(Shrubbery.CRAWLING));         System.ou...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
0 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部