有没有办法为 Svelte 商店的更新定义泛型?

问题描述

我正在查看有关 svelte 中的 typescript 泛型的 here 部分,它提到了

svelte 商店支持开箱即用的泛型

在我的项目中,我像这样为商店项目添加一个泛型

interface Car {
  x: number;
  y: number;
}

export const cars = writable<Array<Car>>([])

但是,当我像这样使用 update

      cars.update(c) => [
        ...c,{      
          x: 1,y: 2,BAD: "BAD"
        },]);

打字稿没有抱怨。 set 也会发生这种情况,该方法只有 any 类型。

解决方法

啊,正如 @Tholle 指出的 ala this article,由于 Typescripts 结构类型,我需要更加明确,所以为了得到预期的结果,我必须像这样输入我的返回值。

 cars.update(c): Array<Car> => [
        ...c,{      
          x: 1,y: 2,BAD: "BAD"
        },]);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...