详解TypScript数据类型转换
最近在用TypeScript(后面简称TS),发现TS虽然语法和C#差不多但是在很多地方还是不够高级(和C#相比),这里主要聚焦在数据类型强转上面,直接看下面案例吧
string转number
案例如下
let i: number = 0;
console.log(typeof i);
let k: string = '123';
console.log(typeof k);
i = +k;
console.log(typeof i,typeof k);
console.log(i);
上面代码执行结果是
number
string
number string
123
** 自定义类型如何强转? **
查了下TypeScript里数据类型强转是通过以下方式:
let yy: any = '111';
console.log('yy数据类型为:', typeof (yy));
let kk: number = <number>yy;
console.log('yy数据类型为:', typeof (yy), 'kk数据类型为:', typeof(kk));
代码结果是:"yy数据类型为: string"
“yy数据类型为: string kk数据类型为: string”
需要说明的是代码中变量yy必须申明为any类型,否则编译器会提示语法错误。由此我得知的结论是TS的强转前提是需强转的对象数据类型必须为any。 那么TS的强制转换只有这一个前提么? 继续看下面代码:
console.log('begindate格式化前的类型',
typeof ($(this.BeginDateDatePicker.nativeElement).data('DateTimePicker').date()));
console.log('begindate格式化后的类型:',
typeof ($(this.BeginDateDatePicker.nativeElement).data('DateTimePicker').date().format('L')));
let y = <moment.Moment>($(this.BeginDateDatePicker.nativeElement).data('DateTimePicker').date().format('L'));
console.log('begindate式化后后再转换后的类型:',
typeof (y));
上面代码中用到了页面中的日期input的值,也引用了Moment插件(官网:http://momentjs.cn/)。
代码需求是要将input的日期格式化为"yyyy-MM-dd"格式。上面的代码可以编译通过,虽然需转换类型的日期值对象当前数据类型为string(不为any),但是编译器还是通过了。我们来看最终执行结果:
结果如下:
begindate格式化前的类型 object
begindate格式化后的类型: string
begindate式化后后再转换后的类型: string
结论
上面代码的执行结果可知,TS内置数据类型强转方式是建立在TS内置的数据类型基础上 我们自定义数据类型或是第三方插件的数据类型如需强转需要自己实现。 同时,对内置数据类型强转也需遵循TS自身的语法要求。
最后还是通过momentjs官网的强转方式将string对象转换成了moment.Moment类型对象。最终代码如下:
createOrEditInput.luckDrawActivitySetting.beginDate =
moment($(this.BeginDateDatePicker.nativeElement)
.data('DateTimePicker').date().format('L'));
createOrEditInput.luckDrawActivitySetting.endDate =
moment($(this.EndDateDatePicker.nativeElement)
.data('Da
详解TypScript数据类型转换的更多相关文章
- 十图详解tensorflow数据读取机制(附代码)转知乎
十图详解tensorflow数据读取机制(附代码) - 何之源的文章 - 知乎 https://zhuanlan.zhihu.com/p/27238630
- 详解Tensorflow数据读取有三种方式(next_batch)
转自:https://blog.csdn.net/lujiandong1/article/details/53376802 Tensorflow数据读取有三种方式: Preloaded data: 预 ...
- 百度大脑UNIT3.0详解之数据生产工具DataKit
在智能对话项目搭建的过程中,高效筛选.处理对话日志并将其转化为新的训练数据,是对话系统效果持续提升的重要环节,也是当前开发者面临的难题之一.为此百度大脑UNIT推出学习反馈闭环机制,提供数据获取.辅助 ...
- Sql Server函数全解<三>数据类型转换函数和文本图像函数
阅读目录 一:数据类型转换函数 二:文本和图像函数 一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和flo ...
- Sql Server函数全解(三)数据类型转换函数和文本图像函数
一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和float,但是对于其它数据类型,例如整型和字符类型,隐士 ...
- 不看就亏了:DELL EqualLogic PS6100详解及数据恢办法
DELL EqualLogic PS6100采用虚拟ISCSI SAN阵列,为远程或分支办公室.部门和中小企业存储部署带来企业级功能.智能化.自动化和可靠性,支持VMware.Solaris.Linu ...
- 详解APM数据采样与端到端
高驰涛 云智慧首席架构师 据云智慧统计,APM从客户端采集的性能数据可能占到业务数据的50%,而企业要做到从Request到Response整个链路中涉及到的所有数据的准确采集,并进行有效串接,进而实 ...
- MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理
1:local库是MongoDB的系统库,记录着时间戳和索引和复制集等信息 gechongrepl:PRIMARY> use local switched to db local gechong ...
- tensorflow 1.0 学习:十图详解tensorflow数据读取机制
本文转自:https://zhuanlan.zhihu.com/p/27238630 在学习tensorflow的过程中,有很多小伙伴反映读取数据这一块很难理解.确实这一块官方的教程比较简略,网上也找 ...
随机推荐
- 6种基础排序算法java源码+图文解析[面试宝典]
一.概述 作为一个合格的程序员,算法是必备技能,特此总结6大基础算法.java版强烈推荐<算法第四版>非常适合入手,所有算法网上可以找到源码下载. PS:本文讲解算法分三步:1.思想2.图 ...
- SQL Android
SQLite是一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少. 一般有以下几个关键步骤: 1.创建数据库 2.创建表 3.操作:增删改查 4.关闭数据库 5.删除表(非必选) SQLite ...
- Scala 枚举介绍及深入应用
本文详细地总结了Scala枚举的几种实现方式,对我们更好地进行函数式编程有很好地指导和帮助. Scala 枚举示例和特性 枚举(Enumerations)是一种语言特性,对于建模有限的实体集来说特别有 ...
- Android 7.0 存储系统—Vold与MountService分析(二)(转 Android 9.0 分析)
Android的存储系统(二) 回顾:前贴主要分析了Android存储系统的架构和原理图,简要的介绍了整个从Kernel-->Vold-->上层MountService之间的数据传输流程, ...
- ES 集群上,业务单点如何优化升级?
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! ES 基础 ES 集群 ES 集群上业务优化 一.ES 基础 ...
- rocketMQ安装中遇到的坑
安装步骤是这些: Prerequisite The following softwares are assumed installed: 64bit OS, Linux/Unix/Mac is rec ...
- Android版数据结构与算法(二):基于数组的实现ArrayList源码彻底分析
版权声明:本文出自汪磊的博客,未经作者允许禁止转载. 本片我们分析基础数组的实现--ArrayList,不会分析整个集合的继承体系,这不是本系列文章重点. 源码分析都是基于"安卓版" ...
- My97DatePicker日期控件,开始时间不能大于结束时间,结束时间不能小于开始时间
在只做项目的时候,需要用到一个日期控件,之前用到过my97,感觉挺好的,兼容性很强,配置也比较容易 当开始时间不能大于结束时间和结束时间不能小于开始时间,这个需要一个判定的,要不然不就乱套了 在my9 ...
- Flex很难?一文就足够了
Flexible Box 是什么 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实 ...
- SQL Server统计信息偏差影响表联结方式案例浅析
我们知道数据库中的统计信息的准确性是非常重要的.它会影响执行计划.一直想写一篇关于统计信息影响执行计划的相关博客,但是都卡在如何构造一个合适的例子上,所以一直拖着没有写.巧合,最近在生产环境中遇到 ...