问题描述
我正在查看有关 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"
},]);