最近在用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数据类型转换的更多相关文章

  1. 十图详解tensorflow数据读取机制(附代码)转知乎

    十图详解tensorflow数据读取机制(附代码) - 何之源的文章 - 知乎 https://zhuanlan.zhihu.com/p/27238630

  2. 详解Tensorflow数据读取有三种方式(next_batch)

    转自:https://blog.csdn.net/lujiandong1/article/details/53376802 Tensorflow数据读取有三种方式: Preloaded data: 预 ...

  3. 百度大脑UNIT3.0详解之数据生产工具DataKit

    在智能对话项目搭建的过程中,高效筛选.处理对话日志并将其转化为新的训练数据,是对话系统效果持续提升的重要环节,也是当前开发者面临的难题之一.为此百度大脑UNIT推出学习反馈闭环机制,提供数据获取.辅助 ...

  4. Sql Server函数全解<三>数据类型转换函数和文本图像函数

    阅读目录 一:数据类型转换函数 二:文本和图像函数 一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和flo ...

  5. Sql Server函数全解(三)数据类型转换函数和文本图像函数

    一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和float,但是对于其它数据类型,例如整型和字符类型,隐士 ...

  6. 不看就亏了:DELL EqualLogic PS6100详解及数据恢办法

    DELL EqualLogic PS6100采用虚拟ISCSI SAN阵列,为远程或分支办公室.部门和中小企业存储部署带来企业级功能.智能化.自动化和可靠性,支持VMware.Solaris.Linu ...

  7. 详解APM数据采样与端到端

    高驰涛 云智慧首席架构师 据云智慧统计,APM从客户端采集的性能数据可能占到业务数据的50%,而企业要做到从Request到Response整个链路中涉及到的所有数据的准确采集,并进行有效串接,进而实 ...

  8. MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理

    1:local库是MongoDB的系统库,记录着时间戳和索引和复制集等信息 gechongrepl:PRIMARY> use local switched to db local gechong ...

  9. tensorflow 1.0 学习:十图详解tensorflow数据读取机制

    本文转自:https://zhuanlan.zhihu.com/p/27238630 在学习tensorflow的过程中,有很多小伙伴反映读取数据这一块很难理解.确实这一块官方的教程比较简略,网上也找 ...

随机推荐

  1. java.util.Date 与 java.sql.Date 之间的转换

    SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); String dateStr = sdf.for ...

  2. JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别

    1. 学习计划   第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) Sp ...

  3. Mybatis学习笔记之一(环境搭建和入门案例介绍)

    一.Mybatis概述 1.1 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了go ...

  4. 用 opencv和numpy进行图片和字符串互转,并保存至 json

    用 opencv和numpy进行图片和字符串互转,并保存至 json 转至 https://zhuanlan.zhihu.com/p/27349847 受 用 base64 进行图片和字符串互转,并保 ...

  5. 哎呀,我老大写Bug啦——记一次MessageQueue的优化

    MessageQueue,顾名思义消息队列,在系统开发中也是用的比较多的一个中间件吧.我们这里主要用它来做日志管理和订单管理的,记得老老大(恩,是的,就是老老大,因为他已经跳槽了)还在的时候,当时也是 ...

  6. .NET 反编译调试神器:dnSpy了解一下

    如果客户环境出了问题,而又无法快速定位问题,可以借助dnSpy进行反编译调试跟踪. 可前往dnSpy官网下载或直接从我的分享链接下载(内置包含.NET Framework 4.7.1,若运行提示需要安 ...

  7. redis基本类型以及优点特性

    1.什么是redis? redis是一个基于内存的高性能key-value数据库 2.redis基本数据类型及应用场景  支持多种数据类型: string(字符串)   String数据结构是简单的k ...

  8. asp.net core系列 43 Web应用 Session分布式存储(in memory与Redis)

    一.概述 HTTP 是无状态的协议. 默认情况下,HTTP 请求是不保留用户值或应用状态的独立消息. 本文介绍了几种保留请求间用户数据和应用状态的方法.下面以表格形式列出这些存储方式,本篇专讲Sess ...

  9. 入门系列之Scikit-learn在Python中构建机器学习分类器

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由信姜缘 发表于云+社区专栏 介绍 机器学习是计算机科学.人工智能和统计学的研究领域.机器学习的重点是训练算法以学习模式并根据数据进行预 ...

  10. 痞子衡嵌入式:超级好用的可视化PyQt GUI构建工具(Qt Designer)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PyQt GUI构建工具Qt Designer. 痞子衡开博客至今已有好几年,一直以嵌入式开发相关主题的文章为主线,偶尔穿插一些其他技术 ...