TypeScript中的联合类型

1、联合类型表示取值可以为多种类型的一种。
2、如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成any类型而完全不被类型检查。
// 联合类型
var type:string | number | boolean = ‘1’
type = 12;
type = true;
3、只能访问此联合类型的所有类型里共有的属性和方法。
var type:string | number = ‘1’
type = ‘12’
type = 12;
console.log(type.length); //类型“number”上不存在属性“length”,string有length这个方法,number没有这个方法所有就报错
console.log(type.toString()); //都有toString()方法所有就不报错
TypeScript中的对象类型-接口
1、可描述类的一部分抽象行为,也可描述对象的结构形状
2、接口一般首字母大写,有的编程语言中会建议接口的名称加上 i 前缀
3、赋值的时候,变量的形状必须和接口的形状保持一致
// 1:定义对象类型并赋值,给对象类型赋值只能赋已有的属性和类型,不可新增和修改
interface IState {
name:string
}
var obj:IState;
obj={name:‘张三’}
// 2:赋值对象不明确,某属性不确定有没有
interface IState2 {
name:string
age?:number // 存疑属性,可有可无
}
var obj2:IState2;
// obj2 = {
// name: ‘张三’,
// age: 12
// }
// 或
obj2 = {
name: ‘张三’
}
console.log(obj2)

// 3:属性名和类型都不确定
interface IState3 {
name:string, // 必须有,name且为字符串类型
age?:number, // age存疑属性,可有可无
[propName:string] : any //任意属性名:任意类型
}
var obj3:IState3;
obj3={
name: ‘必传属性’,
age: 12, // 可有可无
sex: ‘男’, // 新增任意属性
address: ‘湖南岳阳’ // 新增任意属性
}

4、接口中可定义可选属性、只读属性、任意属性
// 4.只读属性
interface IState4 {
name:string,
readonly age:number
}
var obj4:IState4={name:‘张三’, age:15}
// 加readony后再不可能给该属性赋值
// obj4.age=14

TypeScript中的数组类型
1、可采用类型+方括号表示法
var arr:string [] = [‘1’,‘2’,‘3’] // 字符串数组
var arr2:number [] = [1,2,3] // number数组
var arr3:any [] = [1,2,‘3’] //任意类型数组

2、可采用数组泛型表示法
var arr4:Array = [‘2’,‘4’,‘5’]
var arr5:Array = [1,2,3]
var arr6:Array = [1,2,3,‘4’,‘5’]

3、可采用接口表示法
interface IArray {
[arry:number] : IState
}

var IArray:IArray = [{name: ‘对象和接口数组结合使用’}]
var arrType5:Array=[{name:‘张三’}]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值