AArtem UdovichenkoRebase + detach es2panda
d6afa202创建于 2023年10月10日历史提交

delete operator is not supported

Rule arkts-no-delete

Severity: error

ArkTS assumes that object layout is known at compile time and cannot be changed at runtime. Thus the operation of deleting a property makes no sense.

TypeScript


    class Point {
        x?: number = 0.0
        y?: number = 0.0
    }

    let p = new Point()
    delete p.y

ArkTS


    // To mimic the original semantics, you may declare a nullable type
    // and assign null to mark value absence:

    class Point {
        x: number | null = 0
        y: number | null = 0
    }

    let p = new Point()
    p.y = null

See also

  • Recipe 001: Objects with property names that are not identifiers are not supported (arkts-identifiers-as-prop-names)
  • Recipe 002: Symbol() API is not supported (arkts-no-symbol)
  • Recipe 029: Indexed access is not supported for fields (arkts-no-props-by-index)
  • Recipe 060: typeof operator is allowed only in expression contexts (arkts-no-type-query)
  • Recipe 066: in operator is not supported (arkts-no-in)