鸿蒙Next中如何定义常量map

在鸿蒙Next开发中,我想定义一个常量map用于存储固定的键值对数据,但不太清楚具体的语法和实现方式。请问应该如何正确定义?是否需要使用特定的修饰符或注解?能否提供一个简单的代码示例?另外,这种常量map是否支持跨文件访问?

2 回复

在鸿蒙Next中,定义常量map可以用constreadonly,比如:

const myMap: Map<string, number> = new Map([
  ["apple", 1],
  ["banana", 2]
]);

或者用Object.freeze()冻结普通对象:

const myMap = Object.freeze({
  apple: 1,
  banana: 2
});

记住:用const保证引用不变,内容可变性看具体实现哦~ 🍎+🍌=😋

更多关于鸿蒙Next中如何定义常量map的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS NEXT)中,定义常量Map可以使用const关键字结合Map构造函数或字面量方式实现。以下是具体方法:

1. 使用字面量方式定义常量Map

const myMap: Map<string, number> = new Map([
  ['key1', 100],
  ['key2', 200]
]);

2. 使用Map构造函数

const myMap = new Map<string, number>();
myMap.set('key1', 100);
myMap.set('key2', 200);

注意事项:

  • 使用const声明的Map引用不可变,但内容可以修改
  • 如需完全不可变,可使用Object.freeze()(仅冻结浅层)或第三方库
  • 建议明确声明键值类型增强类型安全

示例(完整代码):

// 定义并初始化
const configMap: Map<string, any> = new Map([
  ['timeout', 5000],
  ['retries', 3],
  ['debug', true]
]);

// 使用
console.log(configMap.get('timeout')); // 输出: 5000

推荐使用第一种字面量方式,代码更简洁直观。

回到顶部