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 相关文章推荐
关于Aptana Studio生成自动备份文件的解决办法
Dec 23 Javascript
分享几个超级震憾的图片特效
Jan 08 Javascript
Jquery同辈元素选中/未选中效果的实例代码
Aug 01 Javascript
js使下拉列表框可编辑不止是选择
Dec 12 Javascript
javascript实现日期按月份加减
May 15 Javascript
JavaScript String 对象常用方法总结
Apr 28 Javascript
JS库之Waypoints的用法详解
Sep 13 Javascript
JS实现提交表单前的数字及邮箱校检功能
Nov 13 Javascript
vue的状态管理模式vuex
Nov 30 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
Mar 07 Javascript
10个最受欢迎的 JavaScript框架(推荐)
Apr 24 Javascript
js tab栏切换代码实例解析
Sep 03 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
杏林同学录(九)
2006/10/09 PHP
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
PHP实现倒计时功能
2020/11/16 PHP
javascript中普通函数的使用介绍
2013/12/19 Javascript
AngularJS入门教程(二):AngularJS模板
2014/12/06 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
Python编程中time模块的一些关键用法解析
2016/01/19 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
opencv3/C++ 平面对象识别&amp;透视变换方式
2019/12/11 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
英国排名第一的餐具品牌:Denby Pottery
2019/11/01 全球购物
家长给小学生的评语
2014/01/30 职场文书
乡镇干部先进事迹材料
2014/02/03 职场文书
优质服务演讲稿
2014/05/14 职场文书
嘉宾邀请函
2015/01/31 职场文书
遗愿清单观后感
2015/06/09 职场文书
2015年高中班级工作总结
2015/07/21 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
深入理解go slice结构
2021/09/15 Golang
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫
Redis主从复制操作和配置详情
2022/09/23 Redis
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL