我的编程空间,编程开发者的网络收藏夹
学习永远不晚

TypeScript接口介绍

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

TypeScript接口介绍

前言:

TS的核心原则之一就是对所具有的结构 进行类型检查。接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。

最终被编译成JavaScript代码后不包含接口以及类型约束的代码。

1.接口的定义

接口的作用于type关键字类似,但是又不一样。type可以定义简单的数据类型,例如如下代码


type str = string


这种写法就不能应用在 接口 中,接口中只能写函数类型和类类型还有数组类型。

在TS中定义接口使用interface关键字。

示例代码如下所示:


// 定义一个简单的接口
interface Person {
  name: string
}
// 定义 get 方法
function getPersonName(person: Person): void {
  console.log(person.name)
}
// 定义 set 方法
function setPersonName(person: Person, name: string): void {
  person.name = name
}
// 定义一个 person 对象
let person = {
  name: '一碗粥',
}
setPersonName(person, '一碗周')
// 修改成功
getPersonName(person) // 一碗周

Person 接口就像是一个名字,它用来描述使用该接口中的要求,例如此接口中需要一个name属性,且类型为string类型。

值得注意的是,类型检查并不会检查属性的顺序,只需要对应你的属性存在,且类型相同即可。

2.属性

2.1可选属性

如果接口中的某个属性是可选的,或者说仅仅在某个条件下存在,可以在属性名旁边加一个?号。示例代码如下:


;(function () {
  // 定义一个简单的接口
  interface Person {
    name: string
    // 说明 age 是可选的
    age?: number
  }
  // 定义一个 person 对象
  let person = {
    name: '一碗周',
    age: 18,
    hobby: 'coding',
  }
  // 定义 get 方法
  function getPersonName(person: Person): void {
    // console.log(person.age, person.hobby) //  Property 'hobby' does not exist on type 'Person'.
  }
})()

此时的sex属性我们可写可不写,但是hobb 属性,由于没有在接口中定义,我们调用会抛出异常。

2.2只读属性

如果想让一个属性为一个只读属性,仅仅需要在属性前面添加readonly即可。

示例代码如下:


;(function () {
  interface Person {
    // 将 name 设置为只读
    readonly name: string
  }
  // 定义一个 person 对象
  let person = {
    name: '一碗周',
  }
  // 定义 set 方法
  function setPersonName(person: Person, name: string): void {
    person.name = name // Cannot assign to 'name' because it is a read-only property.
  }
  setPersonName(person, '一碗粥')
})()

3.类类型

3.1继承接口

和类一样,接口也可以相互继承。 这让我们能够从一个接口里复制成员到另一个接口里,可以更灵活地将接口分割到可重用的模块里。

接口继承使用extends关键字,示例代码如下:


// 定义两个接口
interface PersonName {
  name: string
}
interface PersonAge {
  age: number
}

// 定义一个 Person 接口继承于以上两个接口 多个接口使用 , 逗号分割
interface Person extends PersonName, PersonAge {
  hobby: string
  // 定义一个方法,返回值为 string
  say(): string
}
let person = {
  name: '一碗周',
  age: 18,
  hobby: 'coding',
  // 示例方法
  say() {
    return '一碗周'
  },
}
// 定义 get 方法
function getPersonName(person: Person): void {
  console.log(person.name, person.age, person.hobby)
}
getPersonName(person) // 一碗周 18 coding

继承多个接口中间使用,逗号分割。

4.函数类型

在TS中接口还可以对函数类型的接口进行描述。

函数类型接口的定义就像是一个只有参数列表和返回值类型的函数定义,参数列表中每个参数都需要名字和类型 。

示例代码如下所示:


interface MyAdd {
    (x: number, y: number): number
}


定义完成之后我们可以像使用普通接口一样使用这个函数接口。

示例代码如下所示:


let myAdd: MyAdd = (x: number, y: number): number => {
    return x + y
}


上面的代码等同于如下函数定义的代码:


let myAdd: (x: number, y: number) => number = (
    x: number,
    y: number
): number => {
    return x + y
}

到此这篇关于TypeScript接口介绍的文章就介绍到这了,更多相关TypeScript接口 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

TypeScript接口介绍

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

TypeScript接口使用介绍

接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法
2022-11-13

TypeScript中asconst使用介绍

这篇文章主要为大家介绍了TypeScript中asconst使用介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-28

SpringApplicationContext接口功能详细介绍

ApplicationContext是Spring应用程序中的中央接口,由于继承了多个组件,使得ApplicationContext拥有了许多Spring的核心功能,如获取bean组件,注册监听事件,加载资源文件等
2023-02-06

Java接口的介绍和用法

这篇文章主要介绍“Java接口的介绍和用法”,在日常操作中,相信很多人在Java接口的介绍和用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java接口的介绍和用法”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-20

TypeScript泛型使用详细介绍

泛型是静态类型语言的基本特征,允许将类型作为参数传递给另一个类型、函数、或者其他结构。TypeScript支持泛型作为将类型安全引入组件的一种方式。这些组件接受参数和返回值,其类型将是不确定的,直到它在代码中被使用
2022-11-13

TypeScript 类型级别示例介绍

这篇文章主要为大家介绍了TypeScript 类型级别示例介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-27

C#接口方法的实例介绍

本篇内容介绍了“C#接口方法的实例介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.公有方法实现C#接口方法尽管C#在定义接口时不用指明
2023-06-18

golang context接口类型方法介绍

GolangContext接口类型方法介绍Context接口提供方法用于在Goroutine中传递上下文信息,包括:WithValue():添加键值对。Value():检索值。Done():返回取消channel。Err():获取取消原因。Deadline():获取截止日期。Timeout():获取超时持续时间。Background():返回空Context。TODO():表示尚未实现的功能。Context接口支持链式调用,便于创建和操作Context。它广泛用于HTTP请求处理、Goroutine取消、
golang context接口类型方法介绍
2024-04-23

Android中回调接口的使用介绍

MainActivity如下: 代码如下: package cn.testcallback; import android.os.Bundle; import android.widget.Toast; import android.ap
2022-06-06

编程热搜

目录