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 相关文章推荐
模仿JQuery.extend函数扩展自己对象的js代码
Dec 09 Javascript
extJS中常用的4种Ajax异步提交方式
Mar 07 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
Apr 01 Javascript
点评js异步加载的4种方式
Dec 22 Javascript
jQuery siblings()用法实例详解
Apr 26 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
Apr 13 Javascript
js断点调试心得分享(必看篇)
Dec 08 Javascript
让网站自动生成章节目录索引的多个js代码
Jan 07 Javascript
js构建二叉树进行数值数组的去重与优化详解
Mar 26 Javascript
详解vue为什么要求组件模板只能有一个根元素
Jul 22 Javascript
如何在postman中添加cookie信息步骤解析
Jun 30 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
Aug 05 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
一个MYSQL操作类
2006/11/16 PHP
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
PHP仿盗链代码
2012/06/03 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
js常用函数 不错
2006/09/08 Javascript
Jquery中dialog属性小记
2010/09/03 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
require.js 加载过程与使用方法介绍
2018/10/30 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
python中函数默认值使用注意点详解
2016/06/01 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
在PyCharm中实现关闭一个死循环程序的方法
2018/11/29 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
Python urllib3软件包的使用说明
2020/11/18 Python
python遍历路径破解表单的示例
2020/11/21 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
毕业生就业推荐信范文
2013/12/01 职场文书
保安的辞职报告怎么写
2014/01/20 职场文书
优秀教师主要事迹
2014/02/01 职场文书
干部对照检查材料范文
2014/08/26 职场文书
2014年调度员工作总结
2014/11/19 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
2015年城管执法工作总结
2015/07/23 职场文书