在layout.server.ts我尝试
import type { LayoutServerLoad } from './$types';
Run Code Online (Sandbox Code Playgroud)
但找不到类型:
“./$types”没有名为“LayoutServerLoad”的导出成员。您的意思是“LayoutServerData”吗?
我需要做什么才能获取类型LayoutServerLoad(或PageLoad或PageServerLoad...)./$types?
我想将一个函数应用于列表中的每个第二个元素:
> mapToEverySecond (*2) [1..10]
[1,4,3,8,5,12,7,16,9,20]
Run Code Online (Sandbox Code Playgroud)
我写了以下函数:
mapToEverySecond :: (a -> a) -> [a] -> [a]
mapToEverySecond f l = map (\(i,x) -> if odd i then f x else x) $ zip [0..] l
Run Code Online (Sandbox Code Playgroud)
这有效,但我想知道是否有更惯用的方法来做这样的事情.
在我的 SvelteKit 应用程序中,我有一个使用表单操作的表单:
<form action="/login?/logout" method="POST">
<button type="submit">Logout</button>
</form>
Run Code Online (Sandbox Code Playgroud)
在此操作中,最后一步是重定向:
export const actions: Actions = {
logout: async (event) => {
// ...
throw redirect(307, '/login');
}
}
Run Code Online (Sandbox Code Playgroud)
这按我的预期进行。更新到 SvelteKit 1.0.0 后,行为发生了变化:该操作被调用(像以前一样),但在重定向时出现以下错误:
错误:未找到名称为“default”的操作
有什么想法需要改变或者应该如何做?
是否有更简单的方法(可能是标准函数)来执行此操作:
(如果列表包含元素,则结果是列表的下一个元素;如果元素是列表的最后一个元素,则结果是列表的第一个元素."特殊情况":如果列表为空,结果是Nothing.如果列表不包含该元素,则结果是列表的第一个元素.)
import Data.List
next :: Eq a => Maybe a -> [a] -> Maybe a
next _ [] = Nothing
next Nothing (x:_) = Just x
next (Just x) list = Just $ list !! index
where index =
case elemIndex x list of
Nothing -> 0
Just xIndex ->
if xIndex + 1 == length list
then 0
else xIndex + 1
Run Code Online (Sandbox Code Playgroud)