TypeScript-interface接口类型

interface接口类型

在TS中使用interface接口来描述对象数据的类型,常用于给对象的属性和方法添加类型约束

⚠️ 一旦注解接口类型之后对象的属性和方法类型都需要满足要求,属性不能多也不能少

javascript 复制代码
interface Person {
  name: string
  age: number
}

const p: Person = {
  name: 'lily',
  age: 20
}

应用场景:

  • 前端向后端发送数据:收集表单对象数据时的类型校验

  • 前端使用后端数据:渲染后端对象数组列表时的智能提示

javascript 复制代码
// 表单数据收集场景
interface LoginForm {
  username: string
  password: string
}

let formData: LoginForm = {
  username: 'hanna'
  password: '123456'
}
javascript 复制代码
// 渲染后端列表场景
interface Goods {
  id: string
  price: number
}

let list:Goods[] = [
  {
    id:'01',
    price: 100
  }
]

list.forEach((item) => console.log(item.price))

接口的可选设置

通过 ?对属性进行可选标注,赋值的时候该属性可以缺失,如果有值必须保证类型满足要求

javascript 复制代码
interface Datas {
  type: string
  size?: string
}
javascript 复制代码
// 不传
let data: Datas = {
  type:'sucess'
}

// 传值必须类型匹配
let data: Datas = {
  type:'sucess',
  size:'small'
}

接口的继承

使用 extends 实现接口继承,实现类型复用

javascript 复制代码
// 原价商品类型
interface GoodsType {
  id: string
  price: number
}
javascript 复制代码
// 打折商品类型
interface DisGoodsType {
  id: string
  price: number
  disPrice: number
}

// 使用extends
interface DisGoodsType extends GoodsType {
  disPrice: number
}

Demo:

javascript 复制代码
{
  code:200,
  msg:'success',
  data: {
    title:'文章标题',
    content:'文章内容'
  }
}
javascript 复制代码
interface Data {
  title: string
  content: string
}

interface ResData {
  code: number
  msg: string
  data: Data
}

let res: ResData = {
  code: 200,
  msg:'success',
  data:{
    title:'标题',
    content:'内容'
  }
}
相关推荐
一次旅行19 分钟前
多智能体编排实战:拆解Plan-and-Execute范式+三层记忆架构,手写无依赖轻量Agent调度引擎
前端·javascript·架构
小玮看世界2 小时前
[Python]从“脏”数据到优雅实现:一个IoT滑动窗口最大值问题的测试驱动优化实录
linux·前端·python
尤乐娃子2 小时前
进入大厂(厂子大)实习Day11
前端·笔记·实习
xiaoxiangsiyan2 小时前
运维之前端反调试学习
运维·前端·学习·状态模式
小徐_23332 小时前
TRAE WORK 实战,之前写一篇水文要半天,现在用 TRAE Work 摸鱼2分钟交差,真香!
前端·trae
明月_清风2 小时前
🤗 Hugging Face 模型上传完全指南:从本地到 Hub 的 4 种姿势
前端·后端·ai编程
sugar__salt2 小时前
跟着 Demo 学 Pinia:两种仓库写法 + 完整 TodoList 复现
前端·javascript·vue.js·前端框架·vue
To_OC3 小时前
从一个名字编辑组件开始,我把 React + TS 的数据流和副作用彻底搞明白了
前端·react.js·typescript
程序员黑豆4 小时前
Java入门第一步:从零开始编写你的第一个Hello World程序
java·前端·ai编程