13af6ab5fSopenharmony_ci#  The comma operator ``,`` is supported only in ``for`` loops
23af6ab5fSopenharmony_ci
33af6ab5fSopenharmony_ciRule ``arkts-no-comma-outside-loops``
43af6ab5fSopenharmony_ci
53af6ab5fSopenharmony_ci**Severity: error**
63af6ab5fSopenharmony_ci
73af6ab5fSopenharmony_ciArkTS supports the comma operator ``,`` only in ``for`` loops. Otherwise,
83af6ab5fSopenharmony_ciit is useless as it makes the execution order harder to understand.
93af6ab5fSopenharmony_ci
103af6ab5fSopenharmony_ci
113af6ab5fSopenharmony_ci## TypeScript
123af6ab5fSopenharmony_ci
133af6ab5fSopenharmony_ci
143af6ab5fSopenharmony_ci```
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_ci    for (let i = 0, j = 0; i < 10; ++i, j += 2) {
173af6ab5fSopenharmony_ci        console.log(i)
183af6ab5fSopenharmony_ci        console.log(j)
193af6ab5fSopenharmony_ci    }
203af6ab5fSopenharmony_ci
213af6ab5fSopenharmony_ci    let x = 0
223af6ab5fSopenharmony_ci    x = (++x, x++) // 1
233af6ab5fSopenharmony_ci
243af6ab5fSopenharmony_ci```
253af6ab5fSopenharmony_ci
263af6ab5fSopenharmony_ci## ArkTS
273af6ab5fSopenharmony_ci
283af6ab5fSopenharmony_ci
293af6ab5fSopenharmony_ci```
303af6ab5fSopenharmony_ci
313af6ab5fSopenharmony_ci    for (let i = 0, j = 0; i < 10; ++i, j += 2) {
323af6ab5fSopenharmony_ci        console.log(i)
333af6ab5fSopenharmony_ci        console.log(j)
343af6ab5fSopenharmony_ci    }
353af6ab5fSopenharmony_ci
363af6ab5fSopenharmony_ci    // Use explicit execution order instead of the comma operator:
373af6ab5fSopenharmony_ci    let x = 0
383af6ab5fSopenharmony_ci    ++x
393af6ab5fSopenharmony_ci    x = x++
403af6ab5fSopenharmony_ci
413af6ab5fSopenharmony_ci```
423af6ab5fSopenharmony_ci
433af6ab5fSopenharmony_ci
44