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常用对象的方法和属性小结
Jan 24 Javascript
JavaScript splice()方法详解
Sep 22 Javascript
jquery如何判断表格同一列不同行input数据是否重复
May 14 Javascript
深入探讨JavaScript String对象
Mar 09 Javascript
php结合imgareaselect实现图片裁剪
Jul 05 Javascript
全系IE支持Bootstrap的解决方法
Oct 19 Javascript
JavaScript判断是否是微信浏览器
Jun 13 Javascript
JavaScript中push(),join() 函数 实例详解
Sep 06 Javascript
基于JS组件实现拖动滑块验证功能(代码分享)
Nov 18 Javascript
JS敏感词过滤代码
Dec 23 Javascript
Vue入门之数量加减运算操作示例
Dec 11 Javascript
原生JS生成指定位数的验证码
Oct 28 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漏洞全解(详细介绍)
2012/11/13 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
实习自荐信
2013/10/13 职场文书
生物学学生自我评价
2014/01/17 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
座谈会主持词
2014/03/20 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
2015年建党94周年演讲稿
2015/03/19 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书
办公用品质量保证书
2015/05/11 职场文书