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 面向对象之命名空间
May 04 Javascript
js改变鼠标的形状和样式的方法
Mar 31 Javascript
浅谈JS闭包中的循环绑定处理程序
Nov 09 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
Mar 01 Javascript
JavaScript中的toDateString()方法使用详解
Jun 12 Javascript
jQuery+HTML5美女瀑布流布局实现方法
Sep 21 Javascript
很棒的js选项卡切换效果
Jul 15 Javascript
原生js开发的日历插件
Feb 04 Javascript
Angularjs中使用指令绑定点击事件的方法
Mar 30 Javascript
JS实现返回上一页并刷新页面的方法分析
Jul 16 Javascript
详解解决小程序中webview页面多层history返回问题
Aug 20 Javascript
js之切换全屏和退出全屏实现代码实例
Sep 09 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 date函数常用时间处理方法
2015/05/11 PHP
php中smarty区域循环的方法
2015/06/11 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
javascript实现表单验证
2016/01/29 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
微信小程序纯文本实现@功能
2020/04/08 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
python检测远程端口是否打开的方法
2015/03/14 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
对python函数签名的方法详解
2019/01/22 Python
Python 私有化操作实例分析
2019/11/21 Python
通过实例解析python and和or使用方法
2020/11/14 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
创业计划书中包含的9个方面
2013/12/26 职场文书
劳资专员岗位职责
2013/12/27 职场文书
模具专业毕业推荐信
2014/03/08 职场文书
财政局个人年终总结
2015/03/03 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
学校安全管理制度
2015/08/06 职场文书
Tomcat用户管理的优化配置详解
2022/03/31 Servers