TypeScript 中的函数返回多个值
要从 TypeScript 中的函数返回多个值,请将值分组到一个数组中并返回该数组,例如 return [myValue1, myValue2] as const
。 然后,我们可以解构并使用函数返回的值。
function getValues() {
const str = 'hello';
const num = 100;
return [str, num] as const;
}
// 👇️ const result: readonly ["hello", 100]
const result = getValues();
const [str, num] = getValues();
console.log(str.toUpperCase()); // 👉️ "HELLO"
console.log(num.toFixed(2)); // 100.00
我们声明了一个函数,它通过将多个值分组到一个数组中来返回多个值。
请注意
,结果变量的类型(以及函数的返回类型)是["hello", 100]
。
as const
语法在 TypeScript 中称为 const 断言。
const
断言将函数的返回类型设置为只读 ["hello", 100]
,这正是我们想要的。
当我们从函数的返回值中解构它们时,我们希望这些值被正确键入。
如果我们省略 const
断言,让我们看看函数的返回类型。
function getValues() {
const str = 'hello';
const num = 100;
return [str, num];
}
// 👇️ const result: (string | number)[]
const result = getValues();
const [str, num] = getValues();
// 👇️ Now str is string or number
// and num is string or number
现在我们已经删除了 const
,该函数被键入以返回一个包含字符串或数字的数组。
这不是很好,因为当我们将数组中的值解构为 str 和 num 变量时,它们的类型为 string | number
。
string | number
语法在 TypeScript 中称为联合类型。 联合类型由两个或多个其他类型组合而成。
我们可以通过将函数的返回类型显式设置为包含 string
和 number
的元组来解决这个问题。
function getValues(): [string, number] {
const str = 'hello';
const num = 100;
return [str, num];
}
// 👇️ const result: [string, number]
const result = getValues();
const [str, num] = getValues();
我们已经明确地键入函数以返回一个元组,其中第一个元素是一个字符串,第二个元素是一个数字。
现在,当我们将值解构为
str
和num
变量时,它们的类型是正确的。
赋值左侧带有方括号的语法称为解构。
const [a, b] = ['hello', 'world'];
console.log(a); // 👉️ "hello"
console.log(b); // 👉️ "world"
一种简单的思考方式是——我们将数组的元素分配给变量。 请注意,赋值顺序和数组中值的顺序是相同的。
如果我们不想使用解构,则可以使用方括号表示法显式访问这些值。
function getValues() {
const str = 'hello';
const num = 100;
return [str, num] as const;
}
// 👇️ const result: [string, number]
const result = getValues();
const str = result[0];
const num = result[1];
相关文章
Oracle 的 decode 函数在 MySQL 中的等价物
发布时间:2023/05/09 浏览次数:115 分类:MySQL
-
本篇文章介绍了三种替代实现,我们可以将它们用作 MySQL 中 Oracle 的 decode() 函数的等价物。 为此,我们将使用 IF()、CASE 以及 FIELD() 和 ELT() 的组合。
在 MySQL 中创建一个函数
发布时间:2023/05/09 浏览次数:180 分类:MySQL
-
本篇文章介绍了如何在 MySQL 中创建函数。 它首先解释语法,然后使用示例表创建一个函数。在 MySQL 中创建一个函数
使用 PHP MySQLi 函数获取最后插入的 ID
发布时间:2023/05/09 浏览次数:85 分类:MySQL
-
本篇文章简要介绍了 PHP mysqli() 函数并演示了如何使用它从 MySQL 数据库中获取最后插入的 ID。它是一个名为 mysqli 的 MySQL 驱动程序扩展版本,
使用 Date_ADD() 函数在 MySQL 中添加日期和时间
发布时间:2023/05/08 浏览次数:57 分类:MySQL
-
本文介绍如何使用 DATE_ADD() 函数在 MySQL 中添加日期和时间。 我们将学习如何单独添加或减少天、年、月和时间,以及如何将两者结合起来(例如,天和小时)。
在 C 语言中使用 nanosleep 函数
发布时间:2023/05/07 浏览次数:114 分类:C语言
-
本文演示了如何在 C 语言中使用 nanosleep 函数。在 C 语言中使用 nanosleep 函数用高分辨率定时器暂停程序执行
在 C 语言中使用 crypt 函数
发布时间:2023/05/07 浏览次数:177 分类:C语言
-
本文演示了如何使用 C 语言中的加密函数。使用 crypt 函数对密码进行哈希存储 crypt 实际上是一个由四个函数组成的系列
使用 C 语言中的 getchar 函数
发布时间:2023/05/07 浏览次数:172 分类:C语言
-
本文介绍了如何使用 C 语言中的 getchar 函数。在 C 语言中使用 getchar 函数从标准输入流中读取单个字符
在 C 语言中的 printf 函数中对齐列
发布时间:2023/05/07 浏览次数:99 分类:C语言
-
本文介绍了如何在 C 语言中的 printf 函数中对齐列。使用%{integer}d 符号来对齐 C 语言中的输出 printf 是标准 I/O 库的一部分,可以利用它将格式化的字符串输出到 stdout 流。
使用 C 语言中的 feof 函数
发布时间:2023/05/07 浏览次数:164 分类:C语言
-
本文演示了如何在 C 语言中使用 feof 函数。使用 feof 函数检查 C 语言中文件流上的文件结束指示符 feof 函数是 C 标准输入/输出库的一部分,