如何将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
相关产品推荐
相关产品推荐

