TS 小记 和 Record

本文介绍如何将 petsGroup 中的 'dog', 'cat', 'fish' 转换为 IPetInfo 结构,以便统一管理宠物信息,包括名称和年龄。同时,展示了如何在 API 搜索中应用类似的数据类型定义。
摘要由CSDN通过智能技术生成

Record<K,T>;

将petsGroup中的每个值(‘dog’ | ‘cat’ | ‘fish’)都转为 IPetInfo 类型。当然也可以自己在第一个参数后追加额外的值,

type petsGroup = 'dog' | 'cat' | 'fish';
interface IPetInfo {
    name:string,
    age:number,
}

type IPets = Record<petsGroup, IPetInfo>;

const animalsInfo:IPets = {
    dog:{
        name:'dogName',
        age:2
    },
    cat:{
        name:'catName',
        age:3
    },
    fish:{
        name:'fishName',
        age:5
    }
}        

 网易云API 关键字搜索歌曲定义 Type

返回值示例: 

 使用:

/*

//代码片段
const keywords = ref(""); //关键字
const musicUrl = ref(""); //播放音乐的Url
const songsList: Songs[] = ref([]);
const searchClick = async (): void => {
  const {
    data: { result },
  }: { data: Rows<Songs> } = await searchMusic({
    keywords: keywords.value,
  });
  const musicId: number = result.songs[0].id;
  console.log(result);
  songsList.value = result.songs;
  musicUrl.value = `https://music.163.com/song/media/outer/url?id=${musicId}.mp3`;
*/

定义 Type:


export type Rows<T> = {
  result: Result<T>;
  code: number;
};

type Result<T> = {
  hasMore: boolean;
  songCount: number;
  songs: Array<T>;
};

type Songs = {
  album: album;
  alias: Array<string>;
  artists: Array<artist>;
  copyrightId: number;
  duration: number;
  fee: number;
  ftype: number;
  id: number;
  mark: number;
  mvid: number;
  name: string;
  rUrl: unknown;
  rtype: number;
  status: number;
};

type album = {
  artist: Array<artist>;
  copyrightId: number;
  id: number;
  mark: number;
  name: string;
  picId: number;
  publishTime: number;
  size: number;
  status: number;
};

type artist = {
  albumSize: number;
  alias: Array<unknown>;
  id: number;
  img1v1: number;
  img1v1Url: string;
  name: string;
  picId: number;
  picUrl: string;
  trans: string | number;
};

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值