自选图为什么不能自选(选不出来可以不选图)
798
2022-05-30
2.4.4 TypeScript中的类型别名
XMLHttpRequestResponseType这个类型用来指示返回的请求资源的类型。下面来看一下该类型是如何定义的。
可以在VS Code中,将鼠标指针定位到doGet方法的参数类型XMLHttpRequest ResponseType上,然后按住Ctrl键不放,单击鼠标左键,就可以定位到XMLHttpRequest ResponseType的代码声明处,如图2.6所示。
图2.6 XMLHttpRequestResponseType的定义
XMLHttpRequestResponseType的取值中,"arraybuffer"和"blob"返回二进制文件,可以使用TypeScript / JavaScript中的ArrayBuffer和Blob类进行二进制读写。关于ArrayBuffer和Blob的相关知识点,请大家参考JavaScript官方文档。
XMLHttpRequestResponseType实际上是一个类型别名。在TypeScript中可以使用type关键字来声明类型别名,类型别名的实际类型不变,它们仅仅是个替代的名字而已。例如XMLHttpRequesetResponseType的类型还是string,其取值范围使用了“|”符号,表示联合类型,在第1章中已经了解过了。
type关键字和C/C++中的typedef作用是一样的,在C/C++中经常对模板实例化类型进行typedef重定义(取别名),目的是减少输入,让代码更清晰且容易理解。在TypeScript中也一样,例如可以使用type关键字重定义IEnumerator < IDoom3Token >迭代器,代码如下:
type TokenEnumerator = IEnumerator < IDoom3Token > ;
再假设,有一个泛型树数据结构,该结构可以挂接例如number类型的节点,现在我们想使用迭代器来迭代树节点,来对比一下如下代码:
// 不使用type关键字来声明类型别名
let nodeEnumerator : IEnumerator < TreeNode < number > > ;
// 使用type关键字来声明类型别名
type NodeEnumerator = IEnumerator < TreeNode < number > > ; // 一次定义,后续多次使用别名
let nodeEnumator : NodeEnumerator ;
可以看到,代码更加清晰、容易理解了,如果读者看过C++ 标准模板库的代码,就会知道没有类型别名将是多么痛苦的事情了。
架构设计 渲染 TypeScript
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。