TypeScript图形渲染实战:2D架构设计与实现》 —2.4.4 TypeScript中的类型别名

网友投稿 771 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图形渲染实战:2D架构设计与实现》 —2.4.4 TypeScript中的类型别名

架构设计 渲染 TypeScript

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:10个顶级PHP开源项目「2019」
下一篇:Vue进阶(十八):router的beforeEach与afterEach钩子函数
相关文章