Kodokon kodokon.com

为函数指定类型:参数、返回值、可选参数

通过为参数、返回值和可选参数指定类型,让你的函数更安全。

9 分钟 · 3 题

在 Kodokon 中打开本课

函数是一个可复用的小程序:它接收参数(它的输入),并可以返回一个值(它的输出)。为函数指定类型意味着指明每个参数的类型,然后是返回值的类型,写在右括号之后。

TYPESCRIPT
function greet(name: string): string {
  return "Hello " + name + "!";
}

const message = greet("Karim");
console.log(message); // "Hello Karim!"
输入:一个字符串。输出:一个字符串。

有些函数什么都不返回:它们只是执行一个动作,比如显示一条消息。这时它们的返回类型是 void,这个词的意思是“空”。如果你试图把它们的结果当作一个值来使用,TypeScript 会向你发出警告。

TYPESCRIPT
function logWelcome(name: string): void {
  console.log("Welcome, " + name + "!");
}

logWelcome("Fatou"); // prints, but returns nothing
void 表示没有返回值。

就像接口的属性一样,参数也可以用 ? 变为可选。这样调用者可以提供它,也可以不提供。在函数内部,记得处理它缺失的情况。

TYPESCRIPT
function makeCoffee(size: string, sugar?: boolean) {
  if (sugar) {
    return "A " + size + " coffee with sugar.";
  }
  return "A " + size + " coffee without sugar.";
}

makeCoffee("large", true); // with sugar
makeCoffee("small");       // sugar is missing
sugar? 可以提供……也可以不提供。
TYPESCRIPT
function repeat(word: string, times: number = 2) {
  return word.repeat(times);
}

console.log(repeat("ha"));    // "haha"
console.log(repeat("ha", 3)); // "hahaha"
另一种写法:用等号 = 设定一个默认值。

知识检测

确认你已牢记本课的重点内容。

  1. 在 function greet(name: string): string 中,第二个 string 指的是什么?
    • name 参数的类型
    • 函数返回值的类型
    • 函数的名字
  2. 哪种类型表示函数什么都不返回?
    • null
    • empty
    • void
    • zero
  3. 在函数中,可选参数必须放在哪里?
    • 必填参数之后
    • 必填参数之前
    • 参数列表中的任何位置