Typescript 函数返回从数组参数中输入的键定义的拾取类型
所以我想我这次运气不好,但我想在放弃这个想法之前,我会在这里试一试 我正在尝试创建一个函数,在这里您给它一个泛型,然后给它一个数组作为参数,其中包含要从泛型类型中选择的键。像这样的Typescript 函数返回从数组参数中输入的键定义的拾取类型,typescript,Typescript,所以我想我这次运气不好,但我想在放弃这个想法之前,我会在这里试一试 我正在尝试创建一个函数,在这里您给它一个泛型,然后给它一个数组作为参数,其中包含要从泛型类型中选择的键。像这样的 型式试验={ a:布尔型; b:布尔型; c:布尔型; }; 常数t=使用([“a”,“b”); t、 a=真; t、 b=正确; t、 c=真;//`使用`不应让c可用。这将引发typescript生成错误 如果有人对此有解决方案,通用rest参数也是可能的 使用([“a”,“b”])是我发现的唯一有效的解决方案
型式试验={
a:布尔型;
b:布尔型;
c:布尔型;
};
常数t=使用([“a”,“b”);
t、 a=真;
t、 b=正确;
t、 c=真;//`使用`不应让c可用。这将引发typescript生成错误
如果有人对此有解决方案,通用rest参数也是可能的
使用([“a”,“b”])到目前为止,代码>是我发现的唯一有效的解决方案,但它确实很难看。棘手,我看到的问题是Typescript似乎不允许您部分提供泛型,您要么显式提供它们,要么隐式获取它们。如果有这样的语法就好了。这是我能做的最好的了
function use<Q, S extends keyof Q>(
q: Q,
properties: S[]
): {
[K in S]: Q[K];
} {
return {} as any;
}
type Test = {
a: boolean;
b: boolean;
c: boolean;
};
const t = use(<Test>null, ["a", "b"]);
函数使用(
问:问,,
属性:S[]
): {
[K in S]:Q[K];
} {
返回{}如有;
}
型式试验={
a:布尔型;
b:布尔型;
c:布尔型;
};
const t=use(null,[“a”,“b]”);
或者(我认为这更好)
function use():(p:S[])=>{[K in S]:Q[K]}{
返回{}如有;
}
型式试验={
a:布尔型;
b:布尔型;
c:布尔型;
};
const t=use()([“a”,“b]”);
希望有人能告诉我们一些棘手的问题,我看到的问题是Typescript似乎不允许您部分地提供泛型,您要么显式地提供它们,要么隐式地获得它们。如果有这样的语法就好了。这是我能做的最好的了
function use<Q, S extends keyof Q>(
q: Q,
properties: S[]
): {
[K in S]: Q[K];
} {
return {} as any;
}
type Test = {
a: boolean;
b: boolean;
c: boolean;
};
const t = use(<Test>null, ["a", "b"]);
函数使用(
问:问,,
属性:S[]
): {
[K in S]:Q[K];
} {
返回{}如有;
}
型式试验={
a:布尔型;
b:布尔型;
c:布尔型;
};
const t=use(null,[“a”,“b]”);
或者(我认为这更好)
function use():(p:S[])=>{[K in S]:Q[K]}{
返回{}如有;
}
型式试验={
a:布尔型;
b:布尔型;
c:布尔型;
};
const t=use()([“a”,“b]”);
希望有人能给我们点灯谢谢!我可以接受最后一个建议,它并不丑陋,但可能有点混乱。让我们交叉手指,希望有人袖子里套着一个摆脱包装器功能的窍门出现。谢谢!我可以接受最后一个建议,它并不丑陋,但可能有点混乱。让我们为某人祈祷,希望他能拿出一个摆脱包装器功能的窍门。