You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JS类Fuse定义为泛型类型以自动推导实例类型?

实现Fuse.js泛型类型自动推导

Fuse.js的官方类型定义已经支持泛型,无需手动重新定义类型,只需利用TypeScript的自动推导特性即可解决你的问题:

  • 自动推导类型
    只要传入的data具有明确的类型,TypeScript会自动推断出Fuse实例的具体泛型类型,无需额外手动指定:

    // 示例:data1是明确类型的数组
    const data1 = [{ id: 1, title: "Sample" }];
    const fuseData1 = new Fuse(data1);
    // 此时fuseData1的类型自动为 Fuse<{ id: number; title: string }>
    
  • 显式指定泛型(按需使用)
    如果data的类型不够清晰,你可以直接在创建实例时显式声明泛型参数,比手动定义单独的类型别名更高效:

    type MyData = { id: number; title: string };
    const fuseData1 = new Fuse<MyData>(data1);
    
  • 处理类型模糊的场景
    若data是any类型,先给data指定明确的数组类型,就能让TypeScript正常推导:

    const data1: MyData[] = await fetchData();
    const fuseData1 = new Fuse(data1);
    

前提:确保已安装@types/fuse.js包,这样TypeScript才能识别Fuse的泛型类型定义。

内容的提问来源于stack exchange,提问作者Ooker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 07:18:22