HarmonyOS 鸿蒙Next Arkts中export和export default的区别

HarmonyOS 鸿蒙Next中export和export default有以下区别:

export可以在一个外部模块导出多个模块

export default在一个外部模块中只能导出一个模块

1 回复

更多关于HarmonyOS 鸿蒙Next Arkts中export和export default的区别的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next ArkTS中export和export default的区别

在ArkTS(鸿蒙的TypeScript超集)中,exportexport default都用于模块导出,但有以下主要区别:

1. 基本区别

  • export (命名导出):

    • 可以导出多个变量、函数或类
    • 导入时需要知道确切名称并使用大括号
    • 示例:
      // 导出
      export const name = "ArkTS";
      export function greet() { /*...*/ }
      
      // 导入
      import { name, greet } from './module';
      
  • export default (默认导出):

    • 每个模块只能有一个默认导出
    • 导入时不需要大括号,可以自定义名称
    • 示例:
      // 导出
      export default class Component { /*...*/ }
      
      // 导入
      import MyComponent from './module';
      

2. 在ArkTS/HarmonyOS中的特殊注意事项

  • 组件导出:

    • 通常使用export default导出自定义组件
    • 示例:
      @Component
      struct MyComponent {
        // ...
      }
      export default MyComponent;
      
  • 工具函数/工具类:

    • 通常使用命名导出(export)导出多个工具函数或工具类
    • 示例:
      export function formatDate(date: Date) { /*...*/ }
      export function calculateSize() { /*...*/ }
      
  • 类型导出:

    • 类型定义通常使用命名导出
    • 示例:
      export interface User {
        name: string;
        age: number;
      }
      

3. 混合使用

一个模块可以同时有默认导出和命名导出:

// module.ets
const version = "1.0";
export function helper() { /*...*/ }
export default class MainComponent { /*...*/ }

// 导入
import MainComponent, { helper, version } from './module';
回到顶部