TypeScript联合类型、类型守护、类型别名、环境声明
2017-10-26 19:55
471 查看
联合类型
TS允许声明联合类型:var myType:string[]|string|number|boolean; //myType类型可以是字符串数组、字符串、数字、布尔值 myType="type"; myType=["a","b","c"]; myType=100; myType=false; //不可以是其他类型 myType=function(){};//报错
类型守护
类型守护是一种错误提示机制。JavaScript 一个常用的方式就是使用
typeof或者
instanceof来在运行时检查一个表达式的类型。TypeScript 现在可在
if区域块中理解这种情况。
例如:
var x:any={}; if(typeof x==="string"){ console.log(x.splice(3,1));//提示错误信息 }
提示效果:
TS语言服务可以读懂在条件语句中使用
typeof的用法,进而推断出变量
x一定是
string类型,然后告诉我们
splice方法不存在于
string类型中。
类型别名
TS允许使用type关键字声明类型别名:
type PrimitiveArray=Array<string|number|boolean> type MyNumber=number; type Callback=()=>void;
类型别名实质上与原来的类型一样,它们仅仅是一个替代的名字。类型别名可以让代码的可读性更高,但是它也会导致一些问题。
Nicholas C.Zaka 在 Maintainable JavaScript (编写可维护的JavaScript)一书中建议:
避免修改一个不属于你的对象。即避免对那些不是你自己声明的对象(DOM对象、BOM对象、原始类型和第三方库)进行修改和覆盖。
环境声明
TS文件中默认包含了对ES5、ES6、DOM、BOM等对象的接口声明。这样我们就可以直接使用DOM或者是BOM对象了。例如:
在typescript安装包中,
lib.dom.d.ts 文件就是关于DOM 的APIs;
lib.d.ts 就是关于ECMAScript APIs
参考资料
《Learning TypeScript中文版》
相关文章推荐
- 前端学习--TypeScript语法--基础类型以及变量声明
- 标C编程笔记day05 函数声明、文件读写、联合类型、枚举类型
- 联合类型的声明
- 类型别名 联合类型 枚举类型
- [C++基础]038_联合类型声明位置对其值的影响
- TypeScript 学习笔记(一)---基本类型及变量声明
- vs2005 写的web servcies 在.net 2003下调用时报xml 604异常原因是因为实体类,声明类型两个环境不一样
- 使用pycharm手动搭建python语言django开发环境(四) django中buffer类型与str类型的联合使用
- TypeScript基础入门 - 枚举 - 联合枚举与枚举成员的类型
- Go语言学习笔记 --- 常量、变量、批量定义与声明、数据类型、类型别名、类型转换
- c++ 模板(1) 模板的声明以及类型别名
- 联合、枚举和类型别名 - C++快速入门13
- TypeScript基础入门之高级类型的交叉类型和联合类型
- 快速入门C++ 05(联合、枚举和类型别名)
- 联合、枚举和类型别名 - C++快速入门13
- 【c++】联合、枚举和类型别名
- [C++基础]038_联合类型声明位置对其值的影响
- 转载:《TypeScript 中文入门教程》 13、类型兼容性
- Create table(access环境下)自动编号类型的写法