typescript - 打字稿功能:参数后的“:”类型是什么意思以及为什么有些功能没有?
问题描述
问题
简而言之 :
(它在问题的标题中)
- 函数参数后面的“:”是什么意思?
- 为什么它并不总是存在?
举个例子:
我可以看到很多在 Typescript 中编写函数的不同方法,例如:
例 1
function buildName(firstName: string, lastName: string) {
return firstName + " " + lastName;
}
但是也,
Ex2
function buildName(firstName: string, lastName: string): string {
return firstName + " " + lastName;
}
我真的不明白为什么如果“function(params):”之后的内容是一种类型,为什么它不总是存在。例如,在 Java 或 C++ 中,函数总是告诉它返回什么类型的东西。当函数什么都不返回时,这在这些语言中仍然表示为void
.
解决方案
答案
简而言之 :
- ":" - 在函数参数之后,介绍函数返回的类型。
- 不是一直都在吗?- Typescrict 可以推断函数返回的类型。
与前面的例子:
Typescript 在函数参数之后的“:type”用于告诉函数返回的东西是什么类型,就像在 Java 或 C++ 中一样。但是,Typescript 默认情况下会推断函数的返回类型,因此并不总是需要在代码中显式编写它。
在Ex1中,函数buildName
返回firstName + " " + lastName
由 组成strings
。因此编译器知道该函数返回一个string
.
在Ex2中,该函数buildName
具有: string
其参数。这意味着程序员明确地告诉函数返回一个string
. 这会很有帮助,因为编译器会检查函数返回的内容是否真的是 a string
。如果不是,它会抛出一个错误,告诉程序员他犯了一个错误,因为函数没有按预期运行。
以下是我用来学习 Typescript 函数的一些很好的资源:
Typescript Handbook: functions - typescript 的官方手册。
TypeScript 中的键入函数 | 2ality - 一个长而完整的关于 typescript 功能的指南。
注意:StackOverflow 上有类似的问题,但与我搜索的内容不匹配。我决定自己做。
推荐阅读
- wordpress - “fr-DZ”标签(我们放在 hreflang 上)是否适合 SEO?
- haskell - 向元组添加“值”
- tensorflow - 使用张量作为网络中的索引
- r - 如何将 chr 转换为其他内容并将其分成 4 个单元?
- python - 使用 Python Paramiko 将所有文件从本地目录上传到 SFTP 服务器
- python - Plotly:将特定值添加到默认刻度
- excel - 获取最后一个停用的工作表
- c# - C# 记录类型:如何本地化自动生成的 ToString 方法
- javascript - 使用withformik,react和typescript再次关闭和打开面板后如何在输入div中保留搜索字符串?
- microsoft-graph-api - 创建“是/否”列时是否可以设置默认值?