javascript 中的 <T> 有什么用?

What does <T> in javascript for?

例如。来自 React 源代码的示例代码

export function useState<S>(initialState: (() => S) | S) {
  const dispatcher = resolveDispatcher();
  return dispatcher.useState(initialState);
}

这里的<s>是什么意思?

这是一个 generic flow type annotation。它被添加到代码中,以便能够使用 IDE 发现类型不匹配。在编译期间,这些注解会被移除(因为它们是无效的 JS)。

这个注释基本上意味着你可以 useState 任何你想要的类型,你也可以传递一个 returns 特定类型的初始化函数:

  useState("test") // T is string
  useState(1) // T is number
  useState(() => 1) // T is number