【发布时间】:2021-07-28 01:34:39
【问题描述】:
我想要一个需要类型参数的函数:
function foo<T>(key: keyof T): keyof T {
return key;
}
foo<TypeWithoutAbc>('abc') // error
foo<TypeWithAbc>('abc') // no error
foo('abc'); // no error - why not?!
我希望 foo('abc') 会导致错误,因为我没有提供类型 - 我怎样才能使类型成为必需或以其他方式完成我在这里尝试做的事情,即确保一个字符串我通过作为提供类型的属性存在?
这可能吗?
我试过
foo('abc');
function foo<{
abc: any;
}>(key: "abc"): "abc"
【问题讨论】:
-
对无法实现的泛型使用默认值,例如
<T = never> -
@IngoBürk 我试过了,它也不起作用
-
我相信这会回答你的问题stackoverflow.com/a/57744230/3857837
-
@Yuval 谢谢,但我无法在我的情况下使用它。我的函数使用一个参数,其类型是类型参数的“keyof”。我尝试了很多不同的方法,但无法弄清楚。
标签: typescript