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禁止输入数字以外的字符的示例(纯数字验证码)
Apr 10 Javascript
无限树Jquery插件zTree的常用功能特性总结
Sep 11 Javascript
jquery插件推荐浏览器嗅探userAgent
Nov 09 Javascript
JavaScript触发onScroll事件的函数节流详解
Dec 14 Javascript
jQuery对table表格进行增删改查
Dec 22 Javascript
利用transition实现文字上下抖动的效果
Jan 21 Javascript
vue绑定事件后获取绑定事件中的this方法
Sep 15 Javascript
js正则取值的结果数组调试方法
Oct 10 Javascript
微信小程序云开发之云函数详解
May 16 Javascript
Nuxt v-bind绑定img src不显示的解决
Dec 05 Javascript
js实现弹窗效果
Aug 09 Javascript
html5 录制mp3音频支持采样率和比特率设置
Jul 15 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 cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
PDO::getAttribute讲解
2019/01/28 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
2019/10/16 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
使用jQuery jqPlot插件绘制柱状图
2014/12/18 Javascript
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
详解react-refetch的使用小例子
2019/02/15 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
Python字符串格式化的方法(两种)
2017/09/19 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
Pycharm中如何关掉python console
2020/10/27 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
法国最大电子商务平台:Cdiscount
2018/03/13 全球购物
户外婚礼策划方案
2014/02/08 职场文书
2015年学校德育工作总结
2015/04/22 职场文书
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis
Oracle 触发器trigger使用案例
2022/02/24 Oracle
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫
MySQL 原理与优化之原数据锁的应用
2022/08/14 MySQL