【发布时间】:2020-07-23 10:30:56
【问题描述】:
我有什么办法可以告诉这段代码k 是一个字符串,我认为输入V 就足够了吗?
function example <V extends { [key: string]: any }>(value: V, k: keyof V ): string {
return k;
}
我不想在这里投射任何东西,这个例子,是的,这是可能的,但在我的其他情况下,我只是想让 TS 知道它是一个字符串。
如果键是数字,我预计会出现类型错误,但这是有效的:
example({ 1: true }, 1)
【问题讨论】:
-
我认为你不能这样做,因为 Typescript 假定每个对象键总是转换为字符串,这就是它没有显示错误的原因。基于这个假设,并且索引类型只能是数字 |您可以在函数中使用的字符串并从它返回 k.toString() 表达式。
标签: typescript