typescript 接口 java_TypeScript联合类型 接口

TypeScript联合类型

联合类型表示取值可以为多种类型中的一种

如下所示

/**

* 联合类型

*/

var muchtype:string|number="hello";

muchtype=1;

这一块我们必须使用string或者number都支持的类型,那么下面我们可以进行调用扩展方法toString()

/**

* 联合类型

* 注意:如果说我们使用字符串的length属性那么我们需要注意,如果是number类型是不支持的

* 这一块我们必须使用string或者number都支持的类型,那么下面我们可以进行调用扩展方法toString()

*

*/

var muchtype:string|number="hello";

muchtype="";

muchtype=1;

console.log(muchtype.length)

console.log(muchtype.toString().length)

TypeScript中对象类型-接口

接口可以描述一种抽象的行为,也可以描述对象的结构形状,当然我们也需要遵守接口命名规范,接口一般首字母大写 当然在一些语言上面建议接口的名称前缀加上I前缀

interface IStudent{

name:string

}

/**

* 接口规范了name属性是必须要写的所以我们要通过第四行代码进行使用

* 接口起到一个约束作用约束我们这些属性字段必须一对一的编写.

*/

var obj1:IStudent;

obj1="11";

obj1=1;

obj1={name:"11"};

如果说我们进行修改接口如下所示

interface IStudent{

name:string,

age:number

}

那么我们必须要给age进行赋值操作

obj1={name:"11",age:1};

可选类型nullable

interface IStudent

{

name:string,

age?:number //?为一个可空类型nullable 他是一个可有可无的,那么在下面我们可以不用对age进行赋值操作也不会出现异常

}

var obj2={name:"张三",age:1}

在我们属性不确定的时候我们可以通过如下方式实现,any必须是任意类型,

因为当我们进行使用不确定属性个数的时候会有局限性.

当然下面的属性中比如说string number我们也可以使用联合类型,这一块我们后续可以根据实际需求进行变动即可

//属性个数不确定的时候

interface IStudent{

name:string,

age?:number,

[propName:string]:any

}

var obj3:IStudent={name:"Mr.A",age:1,sex:"男",birthday:"2020-03-20"}

只读属性 readonly

interface IStudent{

name:string,

readonly age:number

}

var obj3:IStudent={name:"Mr.A",age:18}

obj3.name="Mr.B";

obj3.age=19;

通过如上代码我们可以发现当我们对obj3.age进行赋值的时候会发现感知错误提示 如下所示

3c8688df-6ab6-4e11-9e31-c01dad38eff9.png

也就是说一旦我们赋初始值以后那么后面我们就不能将其进行修改了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值