有没有办法为 Svelte 商店的更新定义一个通用?



我在这里看了关于svelte中的typescript泛型的这一节,它提到

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在本文中指出的那样,由于Typescript的结构类型,我需要更加明确,所以为了获得预期的结果,我必须键入我的返回,如下所示。

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

最新更新