ts的接口介绍和使用

简言

了解下ts接口(interface)的作用和使用方式。

接口

介绍

在TypeScript里,接口的作用就是为你的代码或第三方代码做类型声明,是命名对象类型的一种方式。

使用关键字:interface 定义。

ts的接口需要以定义(限制)的角度来理解,只要传入的对象满足接口提到的必要条件,那么它就是被允许的。

还有一点值得提的是,类型检查器不会去检查属性的顺序,只要相应的属性存在并且类型也是对的就可以。

typescript 复制代码
//  接口
interface LabelledValue {
  label: string;
}

//  参数使用接口
function printLabel(labelledObj: LabelledValue) {
  console.log(labelledObj.label);
}

let myObj = {
  label: "Size 10 Object",
  size: 10,
  run: () => {
    console.log(this.size);
  }
};
printLabel(myObj);

可选属性

语法: 定义属性时,冒号前面加?,例如:interface A {a?:string}

接口里的属性不全都是必需的。 有些是只在某些条件下存在,或者根本不存在。 可选属性在应用"option bags"模式时很常用,即给函数传入的参数对象中只有部分属性赋值了。

typescript 复制代码
interface Options {
  a: number,
  b?: number, //  可选属性b
}

function run(options: Options): boolean {
  const { a, b } = options
  console.log(a);
  console.log(b);
  //  b是可选属性,使用时加判断
  if (b)
    return a > b
  else
    return true
}

run({ a: 10 })

只读属性

语法: 定义属性时, 属性前加readonly,代表这个是只读属性。例如:interface A { readonly a:number }

一些对象属性只能在对象刚刚创建的时候修改其值。 你可以在属性名前用 readonly来指定只读属性.

可合并

interface声明的对象类型允许合并。不过,如果是含有同名属性,它的类型要保持一致。

可继承

interface声明的对象类型可以继承其他接口对象类型,使用extends扩展。

结语

interface是一个使用率非常高的声明对象类型的方式。

相关推荐
by__csdn7 小时前
Vue3 setup()函数终极攻略:从入门到精通
开发语言·前端·javascript·vue.js·性能优化·typescript·ecmascript
濮水大叔12 小时前
VonaJS是如何做到文件级别精确HMR(热更新)的?
typescript·node.js·nestjs
刘发财15 小时前
前端一行代码生成数千页PDF,dompdf.js新增分页功能
前端·typescript·开源
黛色正浓18 小时前
【React18+TypeScript】React 18 for Beginners
javascript·react.js·typescript
一只秋刀鱼18 小时前
从 0 到 1 构建 React + TypeScript 车辆租赁后台管理系统
前端·typescript
by__csdn19 小时前
Vue3 生命周期全面解析:从创建到销毁的完整指南
开发语言·前端·javascript·vue.js·typescript·前端框架·ecmascript
沐风。562 天前
TypeScript
前端·javascript·typescript
Hao_Harrision2 天前
50天50个小项目 (React19 + Tailwindcss V4) ✨ | DrinkWater(喝水记录组件)
前端·react.js·typescript·vite7·tailwildcss
江澎涌2 天前
JWorker——一套简单易用的基于鸿蒙 Worker 的双向 RPC 通讯机制
typescript·harmonyos·arkts
南知意-2 天前
开源高性能IM+集成AI能力,基于SpringBoot +Tauri+Vue 3+TypeScript支持全平台与丰富会话模式
typescript·开源·springboot·tauri·工具·im·软件