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 相关文章推荐
【消息提示组件】,兼容IE6/7&amp;&amp;FF2
Sep 04 Javascript
JS字符串处理实例代码
Aug 05 Javascript
Jquery遍历checkbox获取选中项value值的方法
Feb 13 Javascript
JQuery选择器绑定事件及修改内容的方法
Jan 23 Javascript
javascript实现手机震动API代码
Aug 05 Javascript
jQuery+css实现炫目的动态块漂移效果
Jan 28 Javascript
Bootstrap响应式侧边栏改进版
Sep 17 Javascript
删除table表格行的实例讲解
Sep 21 Javascript
vue中使用element组件时事件想要传递其他参数的问题
Sep 18 Javascript
小程序如何自主实现拦截器的示例代码
Nov 04 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
Mar 29 Javascript
详解实现vue的数据响应式原理
Jan 20 Vue.js
如何利用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
咖啡的植物学知识
2021/03/03 咖啡文化
php Mysql日期和时间函数集合
2007/11/16 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
2016/04/11 PHP
PHP命名空间定义与用法实例分析
2019/08/14 PHP
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
阻止子元素继承父元素事件具体思路及实现
2013/05/02 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
Python的条件语句与运算符优先级详解
2015/10/13 Python
Python正则表达式使用经典实例
2016/06/21 Python
Python基于pillow判断图片完整性的方法
2016/09/18 Python
python使用super()出现错误解决办法
2017/08/14 Python
Python自定义线程类简单示例
2018/03/23 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
python实现微信防撤回神器
2019/04/29 Python
解决Python对齐文本字符串问题
2019/08/28 Python
pytorch随机采样操作SubsetRandomSampler()
2020/07/07 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
综合实践活动方案
2014/02/14 职场文书
小学教师师德演讲稿
2014/05/06 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
办公室个人总结
2015/02/28 职场文书
投资申请报告
2015/05/19 职场文书
经营场所证明范本
2015/06/19 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书