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 text()要注意啦
Oct 30 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
Sep 28 Javascript
js查错流程归纳
May 04 Javascript
js数组Array sort方法使用深入分析
Feb 21 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
Jan 07 Javascript
jQuery多项选项卡的实现思路附样式及代码
Jun 03 Javascript
详解JavaScript对象类型
Jun 16 Javascript
vue进行图片的预加载watch用法实例讲解
Feb 07 Javascript
JS实现的3des+base64加密解密算法完整示例
May 18 Javascript
JS实现带阴历的日历功能详解
Jan 24 Javascript
vue中uni-app 实现小程序登录注册功能
Oct 12 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 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中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
php 文件上传系统手记
2009/10/26 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
php实现图片上传并进行替换操作
2016/03/15 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
Javascript 日期处理之时区问题
2009/10/08 Javascript
JavaScript isArray()函数判断对象类型的种种方法
2010/10/11 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
使用JS获取页面上的所有标签
2018/10/18 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
关于js陀螺仪的理解分析
2019/04/11 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
Python性能优化技巧
2015/03/09 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
2021/02/04 Python
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
大四学生毕业自荐信
2013/11/07 职场文书
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
校庆接待方案
2014/03/18 职场文书
优秀毕业生找工作自荐信
2014/06/23 职场文书
公司开除员工通知
2015/04/22 职场文书
感谢信
2019/04/11 职场文书