Эта задача включает улучшение существующих функций isSet
и isMap
, чтобы они поддерживали как объекты типа Set/ProxiedSet, так и объекты типа Map/ProxiedMap.
Например, текущее выполнение функций isSet
и isMap
успешно определяет, является ли переменная типа @LocalStorageLink
множество или нет. Однако эти функции не могут точно идентифицировать множества, полученные с помощью API storage.get(Key)
, поскольку LocalStorage
хранит объекты типа Set и Map как прокси-объекты.
Предположим, что у вас есть следующий сценарий:
let storage = new LocalStorage({"localSet": new Set([])});
@LocalStorageLink("localSet") localSet : Set<Number> = new Set([]);
Теперь,
import util from '@ohos.util';
this.types.isSet(this.localSet); // возвращает true
this.types.isSet(storage.get("localSet")); // возвращает false
Идеально обе этих функции должны возвращать одинаковое значение.
Тестовые случаи:
https://gitee.com/arkui-finland/ace-compiler-nt/blob/ng/ets/observed_proxy/isProxiedMap.ets
https://gitee.com/arkui-finland/ace-compiler-nt/blob/ng/ets/observed_proxy/isProxiedSet.ets
Вход Перед тем как оставить комментарий