7对象类型

文章介绍了TypeScript中对象类型的语法,包括如何定义有属性和方法的对象,使用箭头函数类型表示方法,以及设置对象属性的可选性。同时提倡使用类型别名提高代码可读性。文章还提供了一个练习,要求创建一个包含姓名、性别、成绩等属性,可选身高属性,以及学习和打游戏(可选)方法的学生对象。
摘要由CSDN通过智能技术生成

基本使用

掌握:对象类型语法

  • TS 的对象类型,其实就是描述对象中的 属性 方法 的类型,因为对象是由属性和方法组成的。

// 有属性的对象
let person: { name: string } = {
  name: '同学',
};

// 有属性和方法,一行书写多个属性 ; 分隔
let person: { name: string; sayHi(): void } = {
  name: 'jack',
  sayHi() {},
};

// 换行写可以省略 ; 符号
let person: {
  name: string;
  sayHi(): void;
} = {
  name: 'jack',
  sayHi() {},
};

小结:

  • 使用声明描述对象结构?{}

  • 属性怎么写类型?属性名: 类型

  • 方法怎么写类型? 方法名(): 返回值类型

扩展用法

掌握:对象类型中,函数使用箭头函数类型,属性设置可选,使用类型别名。

  • 函数使用箭头函数类型

let person: {
  name: string
  sayHi: () => void
} = {
  name: 'jack',
  sayHi() {},
};
  • 对象属性可选

// 例如:axios({url,method}) 如果是 get 请求 method 可以省略
const axios = (config: { url: string; method?: string }) => {};
// {} 会降低代码可阅读性,建议对象使用类型别名
// const axios = (config: { url: string; method?: string }) => {};
type Config = {
  url: string;
  method?: string;
};
const axios = (config: Config) => {};

let aaa:{name:string;age:number;say?:(word:string)=>void}

aaa={
    name:'小红',
    age:18,
    say(word){
        console.log(word)
    },
}

aaa={
    name:'小红',
    age:18,
}

aaa.say('dfd')//报错 因为say是可选参数,可能不存在,所以ts提前发现错误

aaa.say && aaa.say('dfd)//判断一下就不报错了

id(aaa.say){//判断一下就不报错了
    aaa.say('dfd')
}

小结:

  • 对象的方法使用箭头函数类型怎么写?{sayHi:()=>void}

  • 对象的可选属性怎么设置?{name?: string}

  • 对象类型会使用 {} 如何提供可阅读性?类型别名

:::warning 练习 创建一个学生对象,该对象中具有以下属性和方法:

  • 属性:必选属性:姓名、性别、成绩,可选属性:身高

  • 方法:学习、打游戏(可选) :::

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值