在 Svelte 中,分配从某些 props 或 state 反应式计算的变量是很常见的,如下所示:
export let x: number
export let y: number
$: sum = x + y
Run Code Online (Sandbox Code Playgroud)
当我的反应比 复杂得多时,它的多行形式是什么样的x + y?
在 Nuxt 3 文档中,有一个示例展示了如何使用服务器中间件通过以下方式使用附加信息来注释请求event.context:
export default defineEventHandler((event) => {
event.context.auth = { user: 123 }
})
Run Code Online (Sandbox Code Playgroud)
但是,没有示例说明如何为此进行相应的 TypeScript 键入。我宁愿我event.context.auth不成为一个any类型。
标准 TypeScript 库类型扩展方法在这里似乎无法正常工作。我尝试制作一个shims.d.ts包含以下内容的内容:
declare module 'h3' {
interface H3EventContext {
auth: AuthSession
}
}
Run Code Online (Sandbox Code Playgroud)
然而,这破坏了函数的类型推断defineEventHandler,使所有event参数都变成隐式的any。如何在不破坏内容的情况下声明我的事件上下文类型?