TypeScript学习之强制类型的转换


Posted in Javascript onDecember 27, 2016

前言

使用强类型变量常常需要从一种类型向另一种类型转换,通常使用ToString或ParseInt可以来实现一些简单的转换,但是有时候需要像.NET语言中那样将一种类型显示的转换为另一种类型,在TypeScript规范中,被称为"类型断言",它仍然是类型转换,只是语法是有些不同。下面来详细看看TypeScript的强制类型转换。

TypeScript强制类型转换

在 TypeScript 中将一个 number 转换成 string ,这样做会报错:

var a:number = 12345;
var b:string = <string> a;
// laygroundSingle.ts(24,18): error TS2352: Neither type 'number' nor type 'string' is assignable to the other.

这样写虽然不会报错,但没有什么卵用:

var a:number = 12345;
var b:string = <string><any> a;
console.log(typeof b)
// "number" PlaygroundSingle.js:19:1

还是直接用 javascript 的方法比较靠谱:

var b:string = String(a);
// or
var b:string = a.toString();

注意 new String() String() 的区别:

var a:number = 12345;
// 使用 new 的时候类型必须是 String 而非 string ,否则无法编译通过
var b:String = new String(a);
// 不使用 new 则无所谓
var c:string = String(a);
console.log(a);
console.log('--------b');
console.log(typeof b);
console.log(b);
console.log(b.length);
console.log('--------c');
console.log(typeof c);
console.log(c);
console.log(c.length);

结果如下:

12345 PlaygroundSingle.js:22:9
“——?b” PlaygroundSingle.js:23:9
“object” PlaygroundSingle.js:24:1
String [ “1”, “2”, “3”, “4”, “5” ] PlaygroundSingle.js:25:9
5 PlaygroundSingle.js:26:9
“——?c” PlaygroundSingle.js:27:9
“string” PlaygroundSingle.js:28:1
“12345” PlaygroundSingle.js:29:9
5

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
javascript 动态添加表格行
Jun 22 Javascript
使用jQuery插件创建常规模态窗口登陆效果
Aug 23 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
Feb 26 Javascript
jquery 按键盘上的enter事件
May 11 Javascript
JavaScript对数字的判断与处理实例分析
Feb 02 Javascript
ECMAScript6新增值比较函数Object.is
Jun 12 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
Aug 12 Javascript
探讨JavaScript标签位置的存放与功能有无关系
Jan 15 Javascript
js控制按钮,防止频繁点击响应的实例
Feb 15 Javascript
浅谈react前后端同构渲染
Sep 20 Javascript
微信小程序时间选择插件使用详解
Dec 28 Javascript
vue-iview动态新增和删除的方法
Jun 17 Javascript
如何利用JQuery实现从底部回到顶部的功能
Dec 27 #Javascript
详解js的六大数据类型
Dec 27 #Javascript
javascript ASCII和Hex互转的实现方法
Dec 27 #Javascript
谈谈第三方App接入微信登录 解读
Dec 27 #Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
Dec 27 #Javascript
修改ligerui 默认确认按钮的方法
Dec 27 #Javascript
js判断一个字符串是以某个字符串开头的简单实例
Dec 27 #Javascript
You might like
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
JavaScript中各种编码解码函数的区别和注意事项
2010/08/19 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
Python while 循环使用的简单实例
2016/06/08 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
Python字符编码判断方法分析
2016/07/01 Python
Python实现的特征提取操作示例
2018/12/03 Python
Python中字符串与编码示例代码
2019/05/20 Python
Python Numpy库datetime类型的处理详解
2019/07/13 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
花店创业计划书范文
2014/02/07 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
浅谈python数据类型及其操作
2021/05/25 Python
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技