类型模式
了解 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