我正在尝试创建一个函数,它接受数字数组或字符串数组并从该数组返回 Set,如下所示:
const f = (arr: number[] | string[]): number[] | string[] => {
return [...new Set(arr)];
}
Run Code Online (Sandbox Code Playgroud)
并得到一个错误:
没有重载与此调用匹配。
重载 1 of 2, '(iterable?: Iterable | null | undefined): Set' 出现以下错误。'number[] | 类型的参数 string[]' 不可分配给 'Iterable | 类型的参数 空 | 不明确的'。类型“string[]”不可分配给类型“Iterable”。“Symbol.iterator.next(...)”返回的类型在这些类型之间不兼容。类型“IteratorResult<string,any>”不可分配给类型“IteratorResult<number,any>”。类型“IteratorYieldResult”不可分配给类型“IteratorResult<number, any>”。类型“IteratorYieldResult”不可分配给类型“IteratorYieldResult”。类型“string”不可分配给类型“number”。
重载 2 个,共 2 个,“(values?: readonly number[] | null | undefined): Set”,出现以下错误。'number[] | 类型的参数 string[]' 不可分配给 'readonly number[] | 类型的参数 空 | 不明确的'。类型“string[]”不可分配给类型“readonly number[]”。类型“string”不可分配给类型“number”。
我可以将传入类型从 更改number[] | string[]为(number | string)[],但这意味着数组中可以同时包含数字和字符串,这不是我想要的。
const …Run Code Online (Sandbox Code Playgroud) 尝试使用 vanilaanimate()函数对 SVG <path>元素进行动画处理
小路:
<path id="path1" fill="black" d="M30,30l 50,10 0,50"></path>
Run Code Online (Sandbox Code Playgroud)
杰斯:
path1.animate([
{ d: `M30,30 l10,10 50,0` },
{ d: `M30,30 l60,10 50,20` },
{ d: `M30,30 l10,10 50,0` },
], {
duration: 1000
})
Run Code Online (Sandbox Code Playgroud)
收到警告但没有任何作用:
属性 d 的关键帧值无效:M30,30 l10,10 50,0 属性 d 的关键帧值无效:M30,30 l60,10 50,20 属性 d 的关键帧值无效:M30,30 l10,10 50,0
我正在尝试将元素绑定在{#each}块中并通过单击删除它们。
<script>
const foodList = [
{ icon: '', elem: null, },
{ icon: '', elem: null, },
{ icon: '', elem: null, },
];
const remove = (index) => {
foodList.splice(index, 1);
foodList = foodList;
};
</script>
{#each foodList as {icon, elem}, index}
<div
bind:this={elems[index]}
on:click={remove}
>
{icon}
</div>
{/each}
Run Code Online (Sandbox Code Playgroud)
在我的代码中我遇到了两个问题:
{#each}迭代次数比他应该做的多两倍为什么它会这样工作?
javascript ×2
animation ×1
arrays ×1
bind ×1
binding ×1
each ×1
path ×1
svelte ×1
svg ×1
typescript ×1