ArkTS 模块与命名空间

模块和命名空间

模块(Modules)命名空间(Namespaces) 都是用于代码组织的机制,但它们的用途和适用场景有所不同。

模块(Modules)

模块是 现代 TypeScript/ArkTS 项目的主要代码组织方式,基于 ES6 模块系统(import/export)。每个文件都是一个独立的模块,变量和类型默认私有,需显式导出才能被其他文件使用。

导出(export)

// utils.ets
export function greet(name: string): string {
  return `Hello, ${name}!`;
}

export const PI = 3.14159;

// 默认导出(一个文件只能有一个)
export default class Calculator {
  static add(a: number, b: number): number {
    return a + b;
  }
}

导入(import)

// app.ts
import { greet, PI } from './utils'; // 具名导入
import Calculator from './utils';    // 默认导入
import { runningLock } from '@kit.BasicServicesKit';

console.log(greet("Alice")); // "Hello, Alice!"
console.log(`${Calculator.add(2, 3)}`); // 5

命名空间

命名空间(Namespace)的本质 就是 将一组相关的变量、函数或类封装在一个逻辑容器内,让它们通过一个共同的“调用者”(即命名空间名称)来访问。

// utils.ets
export namespace Math {
  export function add(a: number, b: number): number {
    return a + b
  }

  export const PI = 3.14159;

  export function sub(a: number, b: number): number {
    return a - b
  }

  export function circleArea(r: number): number {
    return PI * r * r
  }
}

export namespace ArrayUtils {
  export function toString(array: number[]): string {
    return array.join(",")
  }
}

到另一个文件中,倒入命名空间

// app.ets 从utils.ets导入Maths和ArrayUtils命名空间
import { ArrayUtils,Maths } from '../utils/utils';

let arr = [1,2,3,4,5]
console.log(ArrayUtils.toString(arr));

let sum = Maths.add(1, 2);
let sub = Maths.sub(1,2)
let circle = Maths.circleArea(3)

恭喜你,模块和命名空间学完了,手动撒花🎉🎉🎉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值