【问题标题】:React & Fuse js with TypeScript使用 TypeScript 反应和融合 js
【发布时间】:2019-05-05 18:07:16
【问题描述】:

将 Typescript 与 Fuse.js 一起使用时出现此错误消息

TS2345:参数类型 '{ keys: string; }' 不能分配给'FuseOptions'。属性“键”的类型不兼容。类型“字符串”不能分配给类型“(“标题”|“ISBN”|“作者”)[]|| { 名称:“标题”| “国际标准书号”| “作者”;重量:数量; }[]'。

代码如下:

let books = [{
        'ISBN': 'A',
        'title': "Old Man's War",
        'author': 'John Scalzi'
    },
    {
        'ISBN': 'B',
        'title': 'The Lock Artist',
        'author': 'Steve Hamilton'
    }
]

let options = {
    keys: 'title'
}
let fuse = new Fuse(books, options)

let filterResult = fuse.search('old')

错误是悬停在let fuse = new Fuse(books, options)中的选项上时

【问题讨论】:

    标签: reactjs typescript fuse.js


    【解决方案1】:

    这也让我有点吃惊。

    编译器按从上到下的顺序移动,因此当它查看options 时,推断它是string[],它与您的书本类型的keyof 不兼容。因此,在您的选项声明中添加类型注释。

    另外,keys 应该是一个键数组。

    最终结果:

    type Book = { ISBN:string; title: string; author: string; };
    
    let options: Fuse.FuseOptions<Book>  = {
        keys: ['title'],
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-20
      • 2020-09-15
      • 2020-11-14
      • 1970-01-01
      • 2023-01-22
      • 1970-01-01
      相关资源
      最近更新 更多