【TS】在 TypeScript 中,我们使用接口(Interfaces)来定义对象的类型

一、什么是接口

在 TypeScript 中,我们使用接口Interfaces来定义对象的类型。
可以用来约束一个对象,函数,以及类的结构和类型。

在面向对象语言中,接口Interfaces是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类classes去实现implement

TypeScript 中的接口是一个非常灵活的概念

  • 除了可用于对类的一部分行为进行抽象以外,
  • 也常用于对对象的形状(Shape)进行描述。

二、定义接口

2.1 默认定义

接口一般首字母大写

interface Person {
    name: string;
    age: number;
}

let tom: Person = {
    name: 'Tom',
    age: 25
};

上面的例子中,我们定义了一个接口 Person,接着定义了一个变量 tom,它的类型是 Person
这样,我们就约束了 tom 的形状必须和接口 Person 一致。

注意

  • 定义的变量比接口少了一些属性是不允许的:
let tom: Person = {
    name: 'Tom'
};

// index.ts(6,5): error TS2322: Type '{ name: string; }' is not assignable to type 'Person'.
//   Property 'age' is missing in type '{ name: string; }'.
  • 多一些属性也是不允许的:
let tom: Person = {
    name: 'Tom',
    age: 25,
    gender: 'male'
};

// index.ts(9,5): error TS2322: Type '{ name: string; age: number; gender: string; }' is not assignable to type 'Person'.
//   Object literal may only specify known properties, and 'gender' does not exist in type 'Person'.

可见,赋值的时候,变量的形状必须和接口的形状保持一致。

2.2 可选属性

有时我们希望不要完全匹配一个形状,那么可以用可选属性:

interface Person {
    name: string;
    age?: number;
}

let tom: Person = {
    name: 'Tom'
};

可选属性的含义是该属性可以不存在,但是这时仍然不允许添加未定义的属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卸载引擎

如果对您有帮助,请赏个饭吃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值