当前位置: 首页 > 知识库问答 >
问题:

前端 - <T = string> 和 <T> 有什么区别?

裴威
2023-05-25
const makeArr = <T = string>(a: T, b: T): T[] => {
  return [a, b]
}

console.log(makeArr(1, 3))

const makeArr = <T>(a: T, b: T): T[] => {
  return [a, b]
}

console.log(makeArr(1, 3))

请问这2种写法有什么区别?我VSCode运行都是可以运行的。

共有1个答案

宗政霄
2023-05-25
  • <T> 是基本的泛型声明,表示在调用时必须提供一个类型参数。
  • <T = string> 则是在 <T> 的基础上增加了类型参数的默认值,即如果在调用时没有提供类型参数,则使用默认值 string。
 类似资料:
  • 问题内容: 可能有人解释一下这两个符号之间的细微差别:和。 看起来这两者之间的唯一区别是它返回nil指针或不返回任何指针,但仍为Struct的所有字段分配内存。 问题答案: 这两种形式的和是完全等效的:两个分配零T和一个指针返回到该分配的内存。唯一的区别是,对于像; 这样的内置类型不起作用。你只能做。 该表格并 没有 分配它只是返回一个零指针T.你仅仅是一个混淆的惯用的变种。

  • 代码如下 报错信息如下 是不是这种情况不应该用 T&U 作为函数返回结果的类型?

  • 问题内容: 我遇到了像这样的Java代码: 以上三种之间的区别是什么?它们在Java中如何称呼这种类型的类或接口声明? 问题答案: 好吧,前两个没有什么区别-它们只是为 type参数 (或)使用了不同的名称。 第三个不是有效的声明- 用作提供类型实 参 时使用的 通配符 ,例如,意味着引用某种类型的列表,但我们不知道是什么。 __ 所有这些都是 泛型 ,这是一个很大的话题。您可能希望通过以下资源了

  • 问题内容: 考虑: 我尝试通过以下方式调用此过程: 但这只会产生 但是,如果我将其更改为 一切正常。尽管文档指出这是正确的语法,但这仍然可行。 为什么什么时候不工作? 问题答案: 如您的文档所述,Yup ..是可从ODBC驱动程序使用的构造/语法。 还有的T-SQL文档中没有提及,只。 它不起作用,因为它不是T-SQL。

  • 当扩展在其他板条箱中定义的特性时,似乎有两种默认实现新特性的方法。 性状的原始定义是 为了扩展该特征的功能,我们定义了一个特征, 现在,由于我们希望该功能在默认情况下可用,我们可以实现以下功能 我所观察到的是,当与trait对象混合时,这两种实现都是必需的。 我理解

  • 问题内容: 这两个语句之间有什么区别: 和 如果您能说明差异,那就太好了。 问题答案: 第一个是创建一个新的String对象。第二个是有效地使用已经存在的(它是在加载类文件时创建的)。实际上,从来没有理由使用构造函数。 (我之所以这样说, 实际上是 因为有一种情况:如果要通过调用然后丢弃原始文件来分解大块,则可以使用此构造函数从子字符串中创建new来节省内存。这确实是一个晦涩的情况,虽然。)