我有这样的代码
interface Test {
prop: number | undefined
}
Run Code Online (Sandbox Code Playgroud)
我想将未定义的属性转换为可选属性,例如
type ToOptional = ???
ToOptional<Test>
/** transform result
{
prop?: number
}
*/
Run Code Online (Sandbox Code Playgroud)
我应该如何定义 ToOptional?
编辑:
interface Test {
prop1: number | undefined;
prop2: number;
}
type ToOptional = ???
ToOptional<Test>
/** transform result
{
prop1?: number
prop2: number
}
*/
Run Code Online (Sandbox Code Playgroud) async fn返回一个实现 的匿名类型Future,因此如果我们想将它用作回调,我们需要将返回值转换为一个 trait 对象。
我试图编写一个函数来做到这一点,但我遇到了一些终身问题。
async fn将返回所有参数的生命周期,因此回调的签名也需要。如何将生命周期添加到回调的返回值中?
use futures::future::{Future, FutureExt, LocalBoxFuture};
type Context = ();
type AsyncCb = Box<dyn for<'r> FnOnce(&'r Context) -> LocalBoxFuture<'r, ()>>;
fn normalize_async_cb<Fut: Future<Output = ()>>(f: for<'r> fn(&'r Context) -> Fut) -> AsyncCb
// how to add 'r for Fut? ^^^
{
let cb = move |ctx: &Context| f(ctx).boxed_local();
Box::new(cb)
}
Run Code Online (Sandbox Code Playgroud) 我有一个名为 的函数schema.func,我想授予schema.func用户执行的权限。
我尝试使用
GRANT EXECUTE ON schema.func to my_user;
Run Code Online (Sandbox Code Playgroud)
但它不起作用。当我执行此功能时,它会引发错误:
模式 ex 的权限被拒绝
我知道我可以使用GRANT USAGE ON SCHEMA,但这不是我想要的,我只需要特定功能的权限,而不是架构中的所有功能。
我可以这样做吗?