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动态加载js脚本文件的方法
Apr 03 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
Jun 11 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 Javascript
JS组件Bootstrap Select2使用方法详解
Apr 17 Javascript
JavaScript 闭包详细介绍
Sep 28 Javascript
Bootstrap显示与隐藏简单实现代码
Mar 06 Javascript
令按钮悬浮在(手机)页面底部的实现方法
May 02 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
JS计算距当前时间的时间差实例
Dec 29 Javascript
react实现antd线上主题动态切换功能
Aug 12 Javascript
详细分析Node.js 多进程
Jun 22 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
Oct 30 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
php在线打包程序源码
2008/07/27 PHP
Yii使用Captcha验证码的方法
2015/12/28 PHP
PHP实现类似于C语言的文件读取及解析功能
2017/09/01 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
PHP实现Huffman编码/解码的示例代码
2018/04/20 PHP
javascript ajax的5种状态介绍
2014/08/18 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
Python队列的定义与使用方法示例
2017/06/24 Python
python cs架构实现简单文件传输
2020/03/20 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
法国春天百货官网:Printemps.com
2020/06/29 全球购物
.net笔试题
2014/03/03 面试题
迷你西餐厅创业计划书范文
2013/12/31 职场文书
党支部公开承诺书
2014/03/28 职场文书
小学生操行评语
2014/04/22 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
学年个人总结范文
2015/03/05 职场文书
上诉状格式
2015/05/23 职场文书
小平小道观后感
2015/06/09 职场文书
无房证明样本
2015/06/17 职场文书