

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Atributos compatíveis de runtime
<a name="supported-features"></a>

As seções abaixo descrevem o conjunto de atributos compatível com o runtime do APPSYNC\$1JS.

## Atributos principais
<a name="core-features"></a>

Os seguintes atributos principais são compatíveis.

------
#### [ Types ]

Os seguintes tipos são compatíveis:
+ números
+ strings
+ booleanos
+ objects
+ arrays
+ funções

------
#### [ Operators ]

Os operadores são suportados, incluindo:
+ Operadores matemáticos padrão (`+`, `-`, `/`, `%`, `*`, etc.)
+ Operador de coalescência nula (`??`)
+ Encadeamento opcional (`?.`)
+ Operadores bitwise
+ Operador `void` e `typeof`
+ Operadores de distribuição (`...`)

Os operadores a seguir não são aceitos:
+ Operadores unários (`++`, `--` e `~`)
+ Operador `in`
**nota**  
Use o operador `Object.hasOwn` para verificar se a propriedade especificada está no objeto especificado.

------
#### [ Statements ]

As seguintes instruções são compatíveis:
+ `const`
+ `let`
+ `var`
+ `break`
+ `else`
+ `for-in`
+ `for-of` 
+ `if`
+ `return`
+ `switch`
+ sintaxe de propagação

Não há suporte para o seguinte:
+ `catch`
+ `continue`
+ `do-while`
+ `finally`
+ `for(initialization; condition; afterthought)`
**nota**  
As exceções são expressões `for-in` e `for-of`, que são suportadas.
+ `throw`
+ `try`
+ `while`
+ Instruções rotuladas

------
#### [ Literals ]

As seguintes [literais do modelo](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) ES 6 são compatíveis:
+ Strings de várias linhas
+ Interpolação de expressão
+ Modelos de aninhamento

------
#### [ Functions ]

A sintaxe da função a seguir também tem suporte:
+ As declarações de função são suportadas.
+ As funções de seta ES 6 são suportadas.
+ A sintaxe de parâmetro rest ES 6 é compatível.

------
#### [ Strict mode ]

As funções operam no modo estrito por padrão, então você não precisa adicionar uma instrução `use_strict` ao seu código de função. Elas não podem ser alteradas.

------

## Objetos primitivos
<a name="primitive-objects"></a>

Os seguintes objetos primitivos de ES e suas funções são compatíveis.

------
#### [ Object ]

Há suporte para os seguintes objetos:
+ `Object.assign()`
+ `Object.entries()` 
+ `Object.hasOwn()`
+ `Object.keys()` 
+ `Object.values()`
+ `delete` 

------
#### [ String ]

As seguintes strings são compatíveis:
+  `String.prototype.length()` 
+  `String.prototype.charAt()` 
+  `String.prototype.concat()` 
+  `String.prototype.endsWith()` 
+  `String.prototype.indexOf()` 
+  `String.prototype.lastIndexOf()` 
+  `String.raw()` 
+  `String.prototype.replace()`
**nota**  
Não há suporte para expressões regulares.   
No entanto, constructos de expressões regulares estilo Java são compatíveis no parâmetro fornecido. Para obter mais informações, consulte [Padrão](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html).
+ `String.prototype.replaceAll()`
**nota**  
Não há suporte para expressões regulares.  
No entanto, constructos de expressões regulares estilo Java são compatíveis no parâmetro fornecido. Para obter mais informações, consulte [Padrão](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html).
+  `String.prototype.slice()` 
+  `String.prototype.split()` 
+  `String.prototype.startsWith()` 
+  `String.prototype.toLowerCase()` 
+  `String.prototype.toUpperCase()` 
+  `String.prototype.trim()` 
+  `String.prototype.trimEnd()` 
+  `String.prototype.trimStart()` 

------
#### [ Number ]

Os seguintes números são compatíveis:
+  `Number.isFinite` 
+  `Number.isNaN` 

------

## Objetos e funções integrados
<a name="built-in-objects-functions"></a>

As funções e objetos a seguir são compatíveis.

------
#### [ Math ]

As seguintes funções matemáticas são compatíveis:
+  `Math.random()` 
+  `Math.min()` 
+  `Math.max()` 
+  `Math.round()` 
+  `Math.floor()` 
+  `Math.ceil()` 

------
#### [ Array ]

Os seguintes métodos de matriz são compatíveis:
+ `Array.prototype.length` 
+ `Array.prototype.concat()` 
+ `Array.prototype.fill()` 
+ `Array.prototype.flat()` 
+ `Array.prototype.indexOf()` 
+ `Array.prototype.join()` 
+ `Array.prototype.lastIndexOf()` 
+ `Array.prototype.pop()` 
+ `Array.prototype.push()` 
+ `Array.prototype.reverse()` 
+ `Array.prototype.shift()` 
+ `Array.prototype.slice()` 
+ `Array.prototype.sort()`
**nota**  
`Array.prototype.sort()` não é compatível com argumentos.
+ `Array.prototype.splice()` 
+ `Array.prototype.unshift()`
+ `Array.prototype.forEach()`
+ `Array.prototype.map()`
+ `Array.prototype.flatMap()`
+ `Array.prototype.filter()`
+ `Array.prototype.reduce()`
+ `Array.prototype.reduceRight()`
+ `Array.prototype.find()`
+ `Array.prototype.some()`
+ `Array.prototype.every()`
+ `Array.prototype.findIndex()`
+ `Array.prototype.findLast()`
+ `Array.prototype.findLastIndex()`
+ `delete` 

------
#### [ Console ]

O objeto do console está disponível para depuração. Durante a execução da consulta em tempo real, log/error as instruções do console são enviadas para o Amazon CloudWatch Logs (se o registro estiver ativado). Durante a avaliação do código com `evaluateCode`, as instruções de log são retornadas na resposta do comando.
+ `console.error()`
+ `console.log()`

------
#### [ Function ]
+ Os métodos `apply`, `bind` e `call` não são compatíveis.
+ Os construtores de função não são compatíveis.
+ Não há suporte para passar uma função como argumento.
+ Chamadas de funções recursivas não são compatíveis

------
#### [ JSON ]

Os seguintes métodos JSON são compatíveis:
+ `JSON.parse()`
**nota**  
Retornará uma string em branco se a string analisada não for um JSON válido.
+ `JSON.stringify()`

------
#### [ Promises ]

Promessas e processos assíncronos não são compatíveis.

**nota**  
O acesso à rede e ao sistema de arquivos não é suportado no `APPSYNC_JS` tempo de execução do AWS AppSync. AWS AppSync lida com todas as operações de E/S com base nas solicitações feitas pelo AWS AppSync resolvedor ou pela AWS AppSync função.

------

## Variáveis globais
<a name="globals"></a>

As seguintes restrições globais são válidas:
+  `NaN` 
+  `Infinity` 
+  `undefined`
+ [https://docs.aws.amazon.com/appsync/latest/devguide/built-in-util-js.html](https://docs.aws.amazon.com/appsync/latest/devguide/built-in-util-js.html)
+ [https://docs.aws.amazon.com/appsync/latest/devguide/extensions-js.html](https://docs.aws.amazon.com/appsync/latest/devguide/extensions-js.html)
+ `runtime`

## Tipos de erro
<a name="error-types"></a>

Não é possível lançar erros com `throw`. Você pode retornar um erro usando a função `util.error()`. Você pode incluir um erro na sua resposta do GraphQL usando a função `util.appendError`.

Para obter mais informações, consulte [Utilitários de erro](https://docs.aws.amazon.com/appsync/latest/devguide/built-in-util-js.html#utility-helpers-in-error-js).