@ikenxuan/amagi

类型模式

了解 amagi 的类型模式系统

类型模式

amagi 提供了两种类型模式,让你可以在类型安全和灵活性之间做出选择。

类型模式说明

返回 any 类型,容错性更强,适合快速开发或处理未知响应结构。

import amagi from '@ikenxuan/amagi'
const client = amagi({ cookies: { bilibili: '', douyin: '', kuaishou: '', xiaohongshu: '' } })
const result = await client.bilibili.fetcher.fetchVideoInfo({
  bvid: 'BV1xx411c7mD'
})

result.data

使用场景

推荐使用 strict 模式

  • 需要完整的 IDE 类型提示
  • 进行类型安全的数据处理
  • 编写生产级代码
  • 需要编译时类型检查

推荐使用 loose 模式

  • 快速原型开发
  • 处理可能变化的 API 响应
  • 需要访问未在类型定义中声明的字段
  • 调试和探索 API

类型定义时间:2025-02-02

严格类型基于接口响应定义,随时间推移可能缺少平台新增的字段。如果需要访问新字段,可以使用 loose 模式或进行类型断言。

示例

B站视频信息

import amagi from '@ikenxuan/amagi'
const client = amagi({ cookies: { bilibili: '', douyin: '', kuaishou: '', xiaohongshu: '' } })
const video = await client.bilibili.fetcher.fetchVideoInfo({
  bvid: 'BV1xx411c7mD',
  typeMode: 'strict'
})

if (video.success) {
  // 完整类型提示
  console.log(video.data.data.desc)
  console.log(video.data.data.owner.name)
  console.log(video.data.data.stat.view)
}

抖音搜索

import amagi from '@ikenxuan/amagi'
const client = amagi({ cookies: { bilibili: '', douyin: '', kuaishou: '', xiaohongshu: '' } })
// 搜索用户
const userSearch = await client.douyin.fetcher.searchContent({
  query: '关键词',
  type: 'user',
  typeMode: 'strict'
})

// 搜索视频
const videoSearch = await client.douyin.fetcher.searchContent({
  query: '关键词',
  type: 'video',
  typeMode: 'strict'
})

类型断言

如果需要在 strict 模式下访问未定义的字段:

import amagi from '@ikenxuan/amagi'
const client = amagi({ cookies: { bilibili: '', douyin: '', kuaishou: '', xiaohongshu: '' } })
const result = await client.bilibili.fetcher.fetchVideoInfo({
  bvid: 'BV1xx411c7mD',
  typeMode: 'strict'
})

if (result.success) {
  // 使用类型断言访问未定义字段
  const newField = (result.data as any).newField
}

最后更新于 2026-09-24

On this page