Usage of standard library is restricted
Rule arkts-limited-stdlib
Severity: error
ArkTS does not allow using some APIs from the TypeScript/JavaScript standard library. The most part of the restricted APIs relates to manipulating objects in a dynamic manner, which is not compatible with static typing. The usage of the following APIs is prohibited:
Properties and functions of the global object: 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()
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:
typeofoperator is allowed only in expression contexts (arkts-no-type-query) - Recipe 066:
inoperator is not supported (arkts-no-in) - Recipe 137:
globalThisis not supported (arkts-no-globalthis)