首页 > 其他分享 >4.对象类型

4.对象类型

时间:2023-12-12 22:36:46浏览次数:36  
标签:string 对象 age IPerson 类型 sayHi name

对象类型

let preson: {
  name: string;
  age: number;
  // sayHi(): void;
  //也可以使用箭头函数
  sayHi: () => void;
} = {
  name: '张三',
  age: 18,
  sayHi() {
    console.log('hi');
  },
};

可选参数 (属性名后加?)

比如我们在发送axiosget请求时,可以忽略method
function myAxios(config: { url: string; method?: string }) {
  console.log(config);
}
myAxios({
  url:'xxxx/xxxx/xxx'
})

接口描述对象的类型(interface)

当一个对象类型被多次使用时,一般会使用接口来描述对象的类型,达到复用的目的
interface IPerson {
  name: string;
  age: number;
  sayHi: () => void;
}
let person1: IPerson = {
  name: '张三',
  age: 18,
  sayHi() {
    console.log('hi');
  },
};
let person2: IPerson = {
  name: '李四',
  age: 20,
  sayHi() {
    console.log('hi');
  },
};

扩展:interface和type(类型别名)的对比

interface IPerson {
  name: string;
  age: number;
  sayHi: () => void;
}
type IPerson = {
  name: string;
  age: number;
  sayHi: () => void;
}
/* 
    相同点:都可以为对象指定类型
    不同点:1.接口,只能为对象指定类型
           2.类型别名,不仅可以为对象指定别名,实际上可以为任意类型指定别名
*/

标签:string,对象,age,IPerson,类型,sayHi,name
From: https://www.cnblogs.com/youbiaokachi/p/17897990.html

相关文章

  • Java登陆第二十三天——JavaScript对象、JSON、事件
    JS中声明对象的两种格式方法1,newobject()然后依次添加属性或方法栗子:<script>//初始化对象varuser=newObject();//给对象添加属性并赋值user.name="张三";user.age=18;//给对象添加方法user.say=functi......
  • 2.高级类型
    联合类型|类型别名|交叉类型7.1联合类型,使用|来连接多个类型letperson:'male'|'female';person='male';person='female';letstrOrBool:string|boolean;strOrBool='hello';strOrBool=false;7.2类型别名(自定义类型),使用关键字t......
  • 1.变量的声明-原始类型
    变量的声明-基础类型/*前言:如果变量的声明和赋值是同时进行的,TS可以自动对变量进行类型检测这里ts自动将variable推断为boolean类型----类型推断机制*/letvariable=false;variable=true;1.number数字类型/*注意:TypeScript里的所有数字都是浮点数,没有......
  • 面向对象编程,看这篇就够了
    一、面向对象编程的概念面向对象编程,是一种程序设计范式,也是一种编程语言的分类。它以对象作为程序的基本单元,将算法和数据封装其中,程序可以访问和修改对象关联的数据。这就像我们在真实世界中操作各种物体一样,比如我们可以打开电视、调整音量、切换频道,而不需要知道电视的内部......
  • 第二节 数据类型
    数据类型Kotlin的基本数据类型与Java、C++基本对应。事实上绝大多数程序语言的基本数据类型都差不多。在Java中8中基本数据类型不属于类,也就不具备“对象”特征,无法进行面向对象操作。Java的解决方案是提供包装类将基本数据类型进行封装,使之每个包装类对象封装一个基本数据类型......
  • 设备电源管理数据类型【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/driver-api/pm/types.htmlstructdev_pm_opsdevicePMcallbacks.Definition:structdev_pm_ops{int(*prepare)(structdevice*dev);void(*complete)(structdevice*dev);int(*suspend)(structdevice*dev)......
  • 秦疆的Java课程笔记:65 面向对象 创建对象内存分析
    先写两个类//创建一个Pet类==============================packageOOP.demo;publicclassPet{publicStringname;publicintage;publicvoidshout(){System.out.println("喵~~");}}//主程序Application================......
  • 面向对象---多态
    多态就是同一个接口,使用不同的实例而执行不同操作多态性(Polymorphism)是面向对象编程的一个重要概念//接口interfaceSoundMaker{voidmakeSound();}//实现接口的基类classAnimalimplementsSoundMaker{@OverridepublicvoidmakeSound(){S......
  • 从根上理解elasticsearch(lucene)查询原理(2)-lucene常见查询类型原理分析
    大家好,我是蓝胖子,在上一节我提到要想彻底搞懂elasticsearch慢查询的原因,必须搞懂lucene的查询原理,所以在上一节我分析了lucene查询的整体流程,除此以外,还必须要搞懂各种查询类型内部是如何工作,比如比较复杂的查询是将一个大查询分解成了小查询,然后通过对小查询的结果进行合并得到......
  • vue3 对子组件使用 v-model,关于绑定对象的问题
    这里有最基本的使用,vue3官网组件v-model我来讲讲注意事项,如果你v-model的是个reactive创建的对象,那么将不起作用,必须得是ref创建的对象要知道,v-model:<inputv-model="searchText"/><!--等价于--><input:value="searchText"@input="searchText=$event.ta......