「前端+鸿蒙」鸿蒙应用开发-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 成为开发大型应用程序时的一个强大工具,因为它提供了更好的类型检查和代码可维护性。

相关推荐
GISer_Jing几秒前
前端GEO优化:AI时代的SEO新战场
前端·人工智能
没想好d3 分钟前
通用管理后台组件库-4-消息组件开发
前端
文艺理科生5 分钟前
Google A2UI 解读:当 AI 不再只是陪聊,而是开始画界面
前端·vue.js·人工智能
晴栀ay7 分钟前
React性能优化三剑客:useMemo、memo与useCallback
前端·javascript·react.js
JS_GGbond7 分钟前
JavaScript继承大冒险:从“原型江湖”到“class殿堂”
前端
XiaoYu20027 分钟前
第6章 Postgres数据库安装
前端·postgresql
洛卡卡了8 分钟前
从活动编排到积分系统:事件驱动在业务系统中的一次延伸
前端·后端·面试
知其然亦知其所以然9 分钟前
别再死记硬背了,一篇文章搞懂 JS 乘性操作符
前端·javascript·程序员
JS_GGbond12 分钟前
前端大扫除:JS垃圾回收与那些“赖着不走”的内存泄露
前端
葡萄城技术团队17 分钟前
轻量级部署:SpreadJS 包依赖优化与打包体积瘦身秘籍
前端