Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 第3章:函数

第3章:函数

3.1 函数定义与类型签名

基本语法

TypeScript 中的函数定义与 JavaScript 类似,但增加了类型注解的支持。以下是两种定义方式:

// 具名函数
function greet(name: string): string {
  return `Hello, ${name}!`;
}

// 函数表达式
const greet = function(name: string): string {
  return `Hello, ${name}!`;
};

类型签名

函数的类型签名由参数类型和返回值类型组成,格式为:
(param1: type1, param2: type2) => returnType

// 显式声明函数类型
let greetFn: (name: string) => string;

// 实现需匹配签名
greetFn = function(name: string) {
  return `Hello, ${name}`;
};

返回值类型

  • 可通过 : type 显式声明返回值类型
  • 若未声明,TypeScript 会进行类型推断
  • 无返回值时使用 void 类型:
function log(message: string): void {
  console.log(message);
}

特殊返回值

  • never 类型表示函数永远不会正常返回(如抛出异常或无限循环):
function throwError(message: string): never {
  throw new Error(message);
}

最佳实践

  1. 优先使用显式类型注解,提高代码可读性
  2. 避免使用 any 作为参数或返回值类型
  3. 复杂函数建议单独定义类型别名:
type BinaryFunc = (a: number, b: number) => number;
const add: BinaryFunc = (a, b) => a + b;

类型兼容性

函数的参数类型和返回值类型需要严格匹配:

// 错误示例:参数类型不匹配
const func: (num: number) => void = (str: string) => {}; // 报错

// 正确示例
const func: (num: number) => void = (num: number) => {};

注意:TypeScript 采用结构化类型系统,参数名称不需要完全一致,但类型必须兼容。

Last Updated:: 3/27/25, 10:50 AM