博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
玩转TypeScript(3)--类型转换
阅读量:5249 次
发布时间:2019-06-14

本文共 1418 字,大约阅读时间需要 4 分钟。

使用强类型变量常常需要从一种类型向另一种类型转换,通常使用ToString或ParseInt可以来实现一些简单的转换,但是有时候需要像.NET语言中那样将一种类型显示的转换为另一种类型,在TypeScript规范中,被称为"类型断言",它仍然是类型转换,只是语法是有些不同,比如要将字符型的转换成数字型,使用如下所示的语法:

var a:int=
someNumberAsString;

这样的语法在javaScript中对DOM编程时可能会产生一些问题,stackoverflow中的提问如下:

anyone know how to cast in TypeScript? 有谁知道如何在TypeScript上进行类型转换 I'm trying to do this: 我试着这样进行转换: var script:HTMLScriptElement = document.getElementsByName("script")[0];alert(script.type);but it's giving me an error: 但是返回了一个错误: Cannot convert 'Node' to 'HTMLScriptElement': Type 'Node' is missing property 'defer' from type 'HTMLScriptElement'(elementName: string) => NodeList

回答如下所示:

TypeScript uses '<>' to surround casts, so the above becomes: TypeScript使用'<>'来支持转换,因此上面的变成:var script = 
document.getElementsByName("script")[0];However, unfortunately you cannot do: 然而,不幸的是你不能像如下这样进行转换:var script = (
document.getElementsByName(id))[0];You get the error 如果是这样你将得到一个错误Cannot convert 'NodeList' to 'HTMLScriptElement[]'But you can do : 但是你可以:(
document.getElementsByName(id))[0];

 

可以看到,在TypeScript中类型转换需要使用
<类型>
这样的语形式,在javaScript语言中类型的转换是透明隐式的进行的,但是在TypeScrpt中,必须得进行一次显示的转换:
var script=
document....
类型断言仅仅只是TypeScript的设计时期的特性,被设计用于确保你能够从一种类型转换成另一种类型,TypeScript使用了结构类型,如果一个Duck对象具有相同的方法和属性,那重叠就可以进行相互的转换.

转载于:https://www.cnblogs.com/lincats/p/3349069.html

你可能感兴趣的文章
hihocoder1148 February 29(区间闰年计数)
查看>>
HDU-5533 Dancing Stars on Me
查看>>
为什么要用全文搜索引擎:全文搜索引擎 VS 数据库管理系统
查看>>
MySQL添加用户、删除用户与授权
查看>>
利用 DBHelper实现增加、删除、修改数据库字段功能
查看>>
Linux中常用的查看系统信息的命令
查看>>
Android获取手机和系统版本等信息的代码
查看>>
JDK1.5_X64安装
查看>>
UVALive - 7061 区间DP初步
查看>>
UESTC - 878
查看>>
自己翻译 delegation 官方文档
查看>>
《掌握需求过程》阅读笔记三
查看>>
[Ynoi2015]此时此刻的光辉
查看>>
C#中缓存的使用
查看>>
OO第三次博客作业
查看>>
Java常见异常及解释
查看>>
统计文件夹的大小
查看>>
php中浮点数计算问题
查看>>
float详解、圣杯布局
查看>>
jQuery中使用attribute,prop获取,设置input的checked值【转】
查看>>