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 表单验证扩展(三)
Oct 20 Javascript
javascript使用smipleChart实现简单图表
Jan 02 Javascript
jquery实现弹出层登录和全屏层注册特效
Aug 28 Javascript
详解AngularJS控制器的使用
Mar 09 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
Mar 11 Javascript
js实现人民币大写金额形式转换
Apr 27 Javascript
详谈AngularJs 控制器、数据绑定、作用域
Jul 09 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
May 03 jQuery
在vue-cli的组件模板里使用font-awesome的两种方法
Sep 28 Javascript
微信小程序获取用户绑定手机号方法示例
Jul 21 Javascript
解决小程序无法触发SESSION问题
Feb 03 Javascript
vue 组件间的通信之子组件向父组件传值的方式
Jul 29 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 无限级 SelectTree 类
2009/05/19 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
php session_decode函数用法讲解
2019/05/26 PHP
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
jQuery DOM删除节点操作指南
2015/03/03 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
python中的字典使用分享
2016/07/31 Python
Django 生成登陆验证码代码分享
2017/12/12 Python
python 实现登录网页的操作方法
2018/05/11 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
2014厂务公开实施方案
2014/02/17 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
小程序后台PHP版本部署运行 LNMP+WNMP
2021/04/01 Servers
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL