Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

TypeScript 函数


TypeScript 有一套特定的语法来为函数参数和返回值指定类型。

了解更多关于函数的信息,请点击这里


返回值类型

可以显式定义函数返回值的类型。

示例

// 这里的 `: number` 指定了该函数返回一个数字
function getTime(): number {
  return new Date().getTime();
}
亲自尝试 »

如果未定义返回值类型,TypeScript 会尝试通过返回的变量或表达式的类型推断它。


Void 返回类型

类型 void 可用于指示函数不返回值。

示例

function printHello(): void {
  console.log('Hello!');
}

亲自尝试 »

参数

函数参数的类型化语法与变量声明类似。

示例

function multiply(a: number, b: number) {
  return a * b;
}
亲自尝试 »

如果未定义参数类型,TypeScript 将默认为使用 any,除非如下所示的默认参数和类型别名部分提供了其他类型信息。


w3schools CERTIFIED . 2022

获取认证!

完成 TypeScript 模块,进行练习,参加考试并获得 w3schools 认证!!

45 美元 报名

可选参数

默认情况下,TypeScript 会假设所有参数都是必需的,但可以显式地将它们标记为可选。

示例

// 这里的 `?` 运算符将参数 `c` 标记为可选
function add(a: number, b: number, c?: number) {
  return a + b + (c || 0);
}
亲自尝试 »

默认参数

对于具有默认值的参数,默认值位于类型注解之后

示例

function pow(value: number, exponent: number = 10) {
  return value ** exponent;
}
亲自尝试 »

TypeScript 也可以从默认值推断类型。


命名参数

命名参数的类型化遵循与普通参数类型化相同的模式。

示例

function divide({ dividend, divisor }: { dividend: number, divisor: number }) {
  return dividend / divisor;
}
亲自尝试 »

剩余参数

剩余参数可以像普通参数一样进行类型化,但类型必须是数组,因为剩余参数始终是数组。

示例

function add(a: number, b: number, ...rest: number[]) {
  return a + b + rest.reduce((p, c) => p + c, 0);
}
亲自尝试 »

类型别名

函数类型可以使用类型别名与函数分开指定。

这些类型的写法类似于箭头函数,了解更多关于箭头函数的信息,请点击这里

示例

type Negate = (value: number) => number;

// 在此函数中,参数 `value` 会自动从类型 `Negate` 中获取 `number` 类型
const negateFunction: Negate = (value) => value * -1;
亲自尝试 »

TypeScript 练习

通过练习测试自己

练习

创建一个函数,返回字符串 "Learning is Fun!",并显式定义返回值类型

 myFunc():  {
   "Learning is Fun!";
}

开始练习



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.