HarmonyOS 标准库被限制使用?

限制使用标准库

规则:arkts-limited-stdlib

ArkTS不允许使用TypeScript或JavaScript标准库中的某些接口。大部分接口与动态特性有关。ArkTS中禁止使用以下接口:

全局对象的属性和方法:

eval

Object:__proto__、__defineGetter__、__defineSetter__、 __lookupGetter__、__lookupSetter__、assign、create、 defineProperties、defineProperty、freeze、 fromEntries、getOwnPropertyDescriptor、getOwnPropertyDescriptors、 getOwnPropertySymbols、getPrototypeOf、 hasOwnProperty、is、isExtensible、isFrozen、 isPrototypeOf、isSealed、preventExtensions、 propertyIsEnumerable、seal、setPrototypeOf

Reflect:apply、construct、defineProperty、deleteProperty、 getOwnPropertyDescriptor、getPrototypeOf、 isExtensible、preventExtensions、 setPrototypeOf

Proxy:handler.apply()、handler.construct()、 handler.defineProperty()、handler.deleteProperty()、handler.get()、 handler.getOwnPropertyDescriptor()、handler.getPrototypeOf()、 handler.has()、handler.isExtensible()、handler.ownKeys()、 handler.preventExtensions()、handler.set()、handler.setPrototypeOf()

我要判断某个json是否存在某个key,比如

let obj = JSON.parse(json)
    if (obj) {
      let has = obj.hasOwnProperty("value")
      return true
    } else {
      return false
    }

但是现在标准库被限制使用,我该使用什么方法判断

阅读 628
1 个回答

尝试下如下写法:

@Entry
@Component
struct Index{
  build() {
    Row() {
      Column({ space: 10 }) {
        Button("click me").onClick(() => {
          let userJson = '{"id":1,"username":"xx","age":18,"password":123456}'
          let obj: Record<string, Object> = JSON.parse(userJson)
          console.info("" + test("id", obj))
          console.info("" + test("username", obj))
          console.info("" + test("xxxx", obj))
        })

      }.width('100%')

    }.height('100%')
  }
}

function test(str: string, obj: Record<string, Object>) {
  for (let i of Object.keys(obj)) {
    if (i == str) {
      return true;
    }
  }
  return false;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进