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];
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
在 Pandas 中使用 stack() 和 unstack() 函数重塑 DataFrame
发布时间:2024/04/24 浏览次数:1289 分类:Python
-
本文讨论了 Pandas 中 stack() 和 unstack() 函数的使用。
Pandas DataFrame DataFrame.append() 函数
发布时间:2024/04/22 浏览次数:104 分类:Python
-
Pandas 中的 append 方法将两个不同 DataFrame 的行合并,并返回新的 DataFrame。
Pandas DataFrame DataFrame.apply() 函数
发布时间:2024/04/22 浏览次数:188 分类:Python
-
Pandas DataFrame apply()函数将输入的函数应用到 Pandas DataFrame 的每一个沿行或沿列的元素。
Pandas DataFrame DataFrame.aggregate() 函数
发布时间:2024/04/22 浏览次数:105 分类:Python
-
Pandas DataFrame aggregate()函数对 DataFrame 的列或行进行聚合。
Pandas DataFrame DataFrame.to_excel() 函数
发布时间:2024/04/22 浏览次数:96 分类:Python
-
DataFrame.to_excel()函数将 DataFrame 数据转储到 excel 文件中,单张或多张。
Pandas DataFrame DataFrame.sort_values() 函数
发布时间:2024/04/22 浏览次数:90 分类:Python
-
DataFrame sort_values()函数对给定的 DataFrame 按升序或降序进行排序。