「前端+鸿蒙」鸿蒙应用开发-TS函数

在 TypeScript 中,函数是一等公民,这意味着函数可以作为参数传递、作为其他函数的返回值,甚至可以赋值给变量。TypeScript 为 JavaScript 的函数增加了类型系统,使得函数的参数和返回值都具有明确的类型。

TS快速入门-函数

基本函数类型注解

在 TypeScript 中,你可以为函数的参数和返回值指定类型:

typescript 复制代码
// 指定参数类型和返回类型
function add(x: number, y: number): number {
    return x + y;
}

let result = add(10, 20); // result 被推断为 number 类型
函数类型别名

你可以为函数定义类型别名,这在处理复杂的回调函数时非常有用:

typescript 复制代码
// 函数类型别名
type StringProcessor = (input: string) => string;

// 使用类型别名
function toUpperCase(str: string): string {
    return str.toUpperCase();
}

let myStringProcessor: StringProcessor = toUpperCase;
可选参数和默认值

TypeScript 允许你定义可选参数和带有默认值的参数:

typescript 复制代码
function greet(name: string, message: string = "Hello"): string {
    return `${message}, ${name}!`;
}

console.log(greet("TypeScript")); // 使用默认消息
console.log(greet("TypeScript", "Hi")); // 使用指定消息
剩余参数

当函数接受不确定数量的参数时,可以使用剩余参数语法:

typescript 复制代码
function sum(...numbers: number[]): number {
    return numbers.reduce((acc, curr) => acc + curr, 0);
}

console.log(sum(1, 2, 3, 4)); // 输出 10
箭头函数

TypeScript 支持 ES6 的箭头函数语法,并且可以很好地与类型系统结合:

typescript 复制代码
let addWithArrow = (x: number, y: number): number => x + y;
泛型函数

泛型允许你编写可在多种类型上工作的函数,而不需要对函数进行多次重写:

typescript 复制代码
function identity<T>(arg: T): T {
    return arg;
}

let outputString: string = identity<string>("myString");
let outputNumber: number = identity(123);

示例代码

以下是一个使用 TypeScript 编写的简单鸿蒙应用示例,演示了函数的基本用法:

typescript 复制代码
// 函数类型别名示例
type StringTransformer = (input: string) => string;

// 定义一个转换字符串的函数
function reverseString(input: string): string {
    return input.split('').reverse().join('');
}

// 使用函数类型别名
let reverse: StringTransformer = reverseString;

// 可选参数示例
function getGreeting(name: string, message: string = "Hello"): string {
    return `${message}, ${name}!`;
}

// 剩余参数示例
function calculateTotal(...numbers: number[]): number {
    return numbers.reduce((total, num) => total + num, 0);
}

// 箭头函数和泛型函数示例
let processAndLog = <T>(value: T, processor: (input: T) => T): void => {
    let result = processor(value);
    console.log(`Processed value: ${result}`);
};

// 使用示例
let greeting = getGreeting("TypeScript"); // 使用默认消息
let total = calculateTotal(1, 2, 3, 4, 5); // 计算总和

// 泛型函数的使用
processAndLog("TypeScript", reverse); // 将字符串反转并记录

console.log(greeting); // 输出 "Hello, TypeScript!"
console.log(total); // 输出 15

TypeScript 中函数的多种用法,包括类型注解、函数类型别名、可选参数、剩余参数、箭头函数和泛型函数。这些特性使得 TypeScript 成为开发大型应用程序时的一个强大工具,因为它提供了更好的类型检查和代码可维护性。

相关推荐
向哆哆3 分钟前
Flutter × OpenHarmony 跨端实战:打造健身俱乐部「数据可视化仪表盘」模块
flutter·信息可视化·开源·鸿蒙·openharmony·开源鸿蒙
灰灰勇闯IT6 分钟前
Flutter for OpenHarmony:响应式布局(LayoutBuilder / MediaQuery)—— 构建真正自适应的鸿蒙应用
flutter·华为·harmonyos
晚霞的不甘8 分钟前
Flutter for OpenHarmony手势涂鸦画板开发详解
前端·学习·flutter·前端框架·交互
We་ct12 分钟前
LeetCode 73. 矩阵置零:原地算法实现与优化解析
前端·算法·leetcode·矩阵·typescript
晚霞的不甘13 分钟前
Flutter for OpenHarmony 实现动态天气与空气质量仪表盘:从 UI 到动画的完整解析
前端·flutter·ui·前端框架·交互
小哥Mark14 分钟前
在鸿蒙应用工程中可以使用哪些Flutter手势交互组件实现点击、双击、长按、拖动、缩放、滑动等多种手势
flutter·交互·harmonyos
小哥Mark16 分钟前
使用Flutter导航组件TabBar、AppBar等为鸿蒙应用程序构建完整的应用导航体系
flutter·harmonyos·鸿蒙
~小仙女~16 分钟前
组件的二次封装
前端·javascript·vue.js
这是个栗子21 分钟前
AI辅助编程(一) - ChatGPT
前端·vue.js·人工智能·chatgpt
2501_9444480022 分钟前
Flutter for OpenHarmony衣橱管家App实战:预算管理实现
前端·javascript·flutter