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 相关文章推荐
Mootools 1.2教程(2) DOM选择器
Sep 14 Javascript
扩展javascript的Date方法实现代码(prototype)
Nov 20 Javascript
从数组中随机取x条不重复数据的JS代码
Dec 24 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
Dec 08 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
bootstrap滚动监控器使用方法解析
Jan 13 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
vue实现键盘输入支付密码功能
Aug 18 Javascript
微信公众号平台接口开发 获取access_token过程解析
Aug 14 Javascript
如何在JavaScript中正确处理变量
Dec 25 Javascript
jQuery实现鼠标拖动图片功能
Mar 04 jQuery
Vue3.0 手写放大镜效果
Jul 25 Vue.js
如何利用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 版本]
2007/03/20 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
基于PHP的登录和注册的功能的实现
2020/08/06 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
2016/12/28 Javascript
使用Require.js封装原生js轮播图的实现代码
2017/06/15 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
python实现得到一个给定类的虚函数
2014/09/28 Python
Python 制作糗事百科爬虫实例
2016/09/22 Python
Python进阶_关于命名空间与作用域(详解)
2017/05/29 Python
python实现数据库跨服务器迁移
2018/04/12 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
浅析python表达式4+0.5值的数据类型
2020/02/26 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
python能在浏览器能运行吗
2020/06/17 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
Android面试题及答案
2015/09/04 面试题
国贸专业个人求职信分享
2013/12/04 职场文书
低碳环保口号
2014/06/12 职场文书
三分钟自我介绍演讲稿
2014/08/21 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
开除员工通知
2015/04/22 职场文书
开天辟地观后感
2015/06/09 职场文书