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
  • 第2章:ArkTS基本语法

第2章:ArkTS基本语法

函数

函数定义与调用

ArkTS中的函数使用function关键字定义,支持多种参数传递方式:

// 基本函数定义
function greet(name: string): string {
  return `Hello, ${name}!`;
}

// 调用函数
const message = greet("ArkTS"); // "Hello, ArkTS!"

函数参数特性

  1. 可选参数:使用?标记
    function createUser(name: string, age?: number) {
      // age是可选的
    }
    
  2. 默认参数:
    function setColor(color: string = "blue") {
      // 默认值为blue
    }
    
  3. 剩余参数:
    function sum(...numbers: number[]): number {
      return numbers.reduce((a, b) => a + b);
    }
    

箭头函数

ArkTS支持ES6风格的箭头函数:

const double = (x: number) => x * 2;
const add = (a: number, b: number) => {
  const sum = a + b;
  return sum;
};

函数类型

函数可以作为类型使用:

type MathOperation = (x: number, y: number) => number;

const multiply: MathOperation = (a, b) => a * b;

高阶函数

支持函数作为参数或返回值:

// 函数作为参数
function processNumbers(arr: number[], callback: (n: number) => number) {
  return arr.map(callback);
}

// 函数作为返回值
function createAdder(addValue: number): (num: number) => number {
  return (num) => num + addValue;
}

函数重载(Overloads)

通过声明多个函数签名实现重载:

function padLeft(value: string, padding: number): string;
function padLeft(value: string, padding: string): string;
function padLeft(value: string, padding: any): string {
  if (typeof padding === "number") {
    return Array(padding + 1).join(" ") + value;
  }
  return padding + value;
}

最佳实践

  1. 保持函数单一职责原则
  2. 合理使用类型注解
  3. 控制函数复杂度(建议不超过20行)
  4. 优先使用纯函数(无副作用)

常见错误

// 错误1:忘记返回值类型
function logError(msg) {  // 应添加: void
  console.error(msg);
}

// 错误2:参数类型不匹配
const handler: (str: string) => void = (num: number) => {}; // 类型不兼容

扩展阅读:ArkTS的函数继承自TypeScript,但针对HarmonyOS环境进行了性能优化,特别是在UI事件处理函数中有特殊优化机制。

Last Updated:: 5/22/25, 5:00 PM