ts 中的interface

interface
基本概念
interface(接口) 是 TS 设计出来用于定义对象类型的,可以对对象的形状进行描述。

定义 interface 一般首字母大写,代码如下:

interface Person{
    name:string,
    age:number
}
定义了interface只能有这几项不能多也不能少
let p1 :Person = {
    name:'小米',
    age:20
}
可选属性

跟函数的可选参数是类似的,在属性上加个 ?,这个属性就是可选的,比如下面的 age 属性

interface Person {
    name: string
    age?: number
}
 
const p1: Person = {
    name: 'lin',
}
只读属性

如果希望某个属性不被改变,可以这么写:

interface P1{
   readonly name?:number,
    age:number
}
const pp1 :P1 = {
    age :222,
    name:333
}
//修改会报错
pp1.name = 444

interface 描述函数类型

interface 也可以用来描述函数类型,代码如下:

interface ISum {
    (x:number,y:number):number
}
 
const add:ISum = (num1, num2) => {
    return num1 + num2
}
自定义属性(可索引的类型)

上文中,属性必须和类型定义的时候完全一致,如果一个对象上有多个不确定的属性,怎么办?

可以这么写。

interface ooo{
    [xx:string]:any
}
const p8 :ooo ={
    name:'酷酷酷',
    age:222
}

如果把属性名定义成number类型,那么就是数组了

interface aa{
    [xx:number]:string
}
let a = ['1','2']

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在TypeScript,接口(interface)用于定义一个类的形状或对象的结构。接口可以包含属性、方法和索引签名等成员。 以下是一个使用接口定义类的形状的例子: ```typescript interface Shape { color: string; } class Circle implements Shape { color: string; radius: number; constructor(color: string, radius: number) { this.color = color; this.radius = radius; } getArea(): number { return Math.PI * this.radius * this.radius; } } let circle = new Circle("red", 5); console.log(circle.color); // 输出:red console.log(circle.getArea()); // 输出:78.53981633974483 ``` 在上面的例子,我们定义了一个接口`Shape`,它包含一个`color`属性。然后我们创建了一个`Circle`类,实现了`Shape`接口,并添加了一个`radius`属性和一个`getArea`方法。最后,我们创建了一个`Circle`类的实例,并访问了它的属性和方法。 另外,接口还可以继承其他接口,创建出多个接口的合成接口。以下是一个使用接口继承的例子: ```typescript interface Shape { color: string; } interface PenStroke { penWidth: number; } interface Square extends Shape, PenStroke { sideLength: number; } let square: Square = { color: "blue", sideLength: 10, penWidth: 5.0 }; console.log(square.color); // 输出:blue console.log(square.sideLength); // 输出:10 console.log(square.penWidth); // 输出:5.0 ``` 在上面的例子,我们定义了三个接口:`Shape`、`PenStroke`和`Square`。`Square`接口继承了`Shape`和`PenStroke`接口的属性,然后我们创建了一个`Square`类型的对象,并给它的属性赋值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值