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实现轮显新闻标题链接
Aug 13 Javascript
jquery BS,dialog控件自适应大小
Jul 06 Javascript
微信分享的标题、缩略图、连接及描述设置方法
Oct 14 Javascript
Node.js实现Excel转JSON
Apr 24 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
Jun 03 Javascript
JS传值出现中文参数乱码的解决方法
Jun 30 Javascript
jQuery 3.0十大新特性最终版发布
Jul 14 Javascript
js实现开启密码大写提示
Dec 21 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
Sep 10 Javascript
vue+webpack实现异步加载三种用法示例详解
Apr 24 Javascript
vue 如何从单页应用改造成多页应用
Oct 23 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 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
PHP 日志缩略名的创建函数代码
2010/05/26 PHP
PHP乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
浅析PHP7的多进程及实例源码
2019/04/14 PHP
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
vue实现抽屉弹窗效果
2020/11/15 Javascript
Python实现批量转换文件编码的方法
2015/07/28 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
python 剪切移动文件的实现代码
2018/08/02 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
Python中调用其他程序的方式详解
2019/08/06 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
python实现文法左递归的消除方法
2020/05/22 Python
招商业务员岗位职责
2013/12/16 职场文书
大学生职业生涯规划书汇总
2014/03/20 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
七一晚会主持词
2015/06/29 职场文书
初中政教处工作总结
2015/08/12 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
浅析NIO系列之TCP
2021/06/15 Java/Android
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL
Golang并发工具Singleflight
2022/05/06 Golang