description

# JSArray<T extends JSAny?> extension type

A JavaScript `Array`.

Because JSArray is an extension type, `T` is only a static guarantee and the array does not necessarily only contain `T`-typed elements. For example:

    @JS()
    external JSArray<JSNumber> get array;

`array` is not actually checked to ensure it contains instances of JSNumber when called.

`T` may introduce additional checking elsewhere, however. When accessing elements of JSArray with type `T`, there is a check to ensure the element is a `T` to ensure soundness. Similarly, when converting to a `List<T>`, casts may be introduced to ensure that it is indeed a `List<T>`.

on
  - JSArrayType
Implemented types
  - JSObject
  - Object
  - JSIterable<T>
Available extensions
  - JSAnyOperatorExtension
  - JSAnyUtilityExtension
  - JSArrayToList
  - JSIterableToIterable
  - JSObjectUnsafeUtilExtension
  - NullableUndefineableJSAnyExtension

Annotations
  - @JS('Array')

## Constructors

JSArray()
  Creates an empty JavaScript `Array`.
JSArray.withLength(int length)
  Creates a JavaScript `Array` of size `length` with no elements.

## Properties

hashCode → int
  The hash code for this object.
  no setter inherited
isDefinedAndNotNull → bool

  Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension

  no setter
isNull → bool

  Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension

  Whether this value corresponds to JavaScript `null`.
  no setter
isTruthy → JSBoolean

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of `!!`this`` in JavaScript.
  no setter
isUndefined → bool

  Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension

  Whether this value corresponds to JavaScript `undefined`.
  no setter
isUndefinedOrNull → bool

  Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension

  no setter
iterator → JSIterator<T>
  See `[Symbol.iterator]()`.
  no setter inherited
length ↔ int
  The length in elements of this `Array`.
  getter/setter pair
not → JSBoolean

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of `!`this`` in JavaScript.
  no setter
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited
toDart → List<T>

  Available on JSArray<T>, provided by the JSArrayToList extension

  Converts this JSArray to a List by either casting or wrapping it.
  no setter
toDartIterable → Iterable<T>

  Available on JSIterable<T>, provided by the JSIterableToIterable extension

  A Dart Iterable that iterates over the values in this.
  no setter

## Methods

add(T value) → void
  Adds `value` to the end of this `Array`, extending the length by one.
add(JSAny? any) → JSAny

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` + `any`` in JavaScript.
and(JSAny? any) → JSAny?

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` && `any`` in JavaScript.
callMethod<R extends JSAny?>(JSAny method, [JSAny? arg1, JSAny? arg2, JSAny? arg3, JSAny? arg4]) → R

  Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

  Calls `method` on this JSObject with up to four arguments.
callMethodVarArgs<R extends JSAny?>(JSAny method, [List<JSAny?>? arguments]) → R

  Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

  Calls `method` on this JSObject with a variable number of `arguments`.
dartify() → Object?

  Available on JSAny?, provided by the JSAnyUtilityExtension extension

  Converts a JavaScript JSON-like value to the Dart equivalent if possible.
delete(JSAny property) → JSBoolean

  Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

  Deletes the property with key `property` from this JSObject.
divide(JSAny? any) → JSAny

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` / `any`` in JavaScript.
equals(JSAny? any) → JSBoolean

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` == `any`` in JavaScript.
exponentiate(JSAny? any) → JSAny

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` ** `any`` in JavaScript.
getProperty<R extends JSAny?>(JSAny property) → R

  Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

  The value of the property key `property` of this JSObject.
greaterThan(JSAny? any) → JSBoolean

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` > `any`` in JavaScript.
greaterThanOrEqualTo(JSAny? any) → JSBoolean

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` >= `any`` in JavaScript.
has(String property) → bool

  Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

  Shorthand helper for hasProperty to check whether this JSObject contains the property key `property`, but takes and returns a Dart value.
hasProperty(JSAny property) → JSBoolean

  Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

  Whether or not this JSObject contains the property key `property`.
instanceof(JSFunction<Function> constructor) → bool

  Available on JSAny?, provided by the JSAnyUtilityExtension extension

  Whether this `JSAny?` is an `instanceof` `constructor`.
instanceOfString(String constructorName) → bool

  Available on JSAny?, provided by the JSAnyUtilityExtension extension

  Whether this `JSAny?` is an `instanceof` the constructor that is defined by `constructorName`, which is looked up in the globalContext.
lessThan(JSAny? any) → JSBoolean

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` < `any`` in JavaScript.
lessThanOrEqualTo(JSAny? any) → JSBoolean

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` <= `any`` in JavaScript.
modulo(JSAny? any) → JSAny

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` % `any`` in JavaScript.
multiply(JSAny? any) → JSAny

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` * `any`` in JavaScript.
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
notEquals(JSAny? any) → JSBoolean

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` != `any`` in JavaScript.
or(JSAny? any) → JSAny?

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` || `any`` in JavaScript.
setProperty(JSAny property, JSAny? value) → void

  Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

  Write the `value` of property key `property` of this JSObject.
strictEquals(JSAny? any) → JSBoolean

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` === `any`` in JavaScript.
strictNotEquals(JSAny? any) → JSBoolean

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` !== `any`` in JavaScript.
subtract(JSAny? any) → JSAny

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` - `any`` in JavaScript.
toString() → String
  A string representation of this object.
  inherited
typeofEquals(String typeString) → bool

  Available on JSAny?, provided by the JSAnyUtilityExtension extension

  Whether the result of `typeof` on this `JSAny?` is `typeString`.
unsignedRightShift(JSAny? any) → JSNumber

  Available on JSAny?, provided by the JSAnyOperatorExtension extension

  The result of ``this` >>> `any`` in JavaScript.

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited
operator [](int position) → T
  The value at `position` in this `Array`.
operator [](String property) → JSAny?

  Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

  Shorthand helper for getProperty to get the value of the property key `property` of this JSObject, but takes a Dart value.
operator []=(int position, T value) → void
  Sets the `value` at `position` in this `Array`.
operator []=(String property, JSAny? value) → void

  Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

  Shorthand helper for setProperty to write the `value` of the property key `property` of this JSObject, but takes a Dart value.

## Static Methods

from<T extends JSAny>(JSObject arrayLike) → JSArray<T>
  Creates a new, shallow-copied JavaScript `Array` instance from a JavaScript iterable or array-like object.