【发布时间】:2020-12-24 16:03:42
【问题描述】:
What does "keyof typeof" mean in TypeScript?
我发现上面的问题作者问的和我想问的完全一样,但是没有答案找到问题的重点。
假设有这个泛型方法和一个类。
function fn<K extends keyof typeof A>(key: K) ...
class A {
static a;
static b;
}
我的理由是:
-
typeof 关键字返回一个字符串,显示 js 基本类型之一。
-
所以无论值是什么,返回类型都是字符串。
-
所以 keyof "..." 应该是索引和 "length" 以及字符串文字可以具有的东西。在这种情况下,keyof "function" 应该返回类型 "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | “长度”。
-
但实际行为是 typeof 类 A 返回构造函数。
怎么会这样?
【问题讨论】:
-
"typeof 关键字返回一个字符串,表示其中一种 js 基本类型。" False,
typeof在 Typescript 中在此上下文中具有不同的含义。 typescriptlang.org/docs/handbook/2/… -
不知道很多打字稿我发现链接到问题的答案是非常信息。即使其中一个的风格不符合您的喜好,也有多个似乎不错的答案,因此您可以阅读多个答案并选择对您最有帮助的一个。我投票关闭,因为我认为这完全是重复的。
-
这能回答你的问题吗? What does "keyof typeof" mean in TypeScript?
-
@JoachimSauer 当然不是因为我提到了问题顶部的问题。问题的答案中没有行为的来源。我的问题和我想要的来源以及 typeof 可能意味着多种事情的事实,因为我们已经知道了这种行为。
-
@kaya3 非常感谢。如果您将其发布,我会选择您的答案。您的评论实际上是我想要的真正答案。
标签: typescript