13af6ab5fSopenharmony_ci#  Definite assignment assertions are not supported
23af6ab5fSopenharmony_ci
33af6ab5fSopenharmony_ciRule ``arkts-no-definite-assignment``
43af6ab5fSopenharmony_ci
53af6ab5fSopenharmony_ci**Severity: warning**
63af6ab5fSopenharmony_ci
73af6ab5fSopenharmony_ciArkTS does not support definite assignment assertions ``let v!: T`` because
83af6ab5fSopenharmony_cithey are considered an excessive compiler hint.
93af6ab5fSopenharmony_ciUse declaration with initialization instead.
103af6ab5fSopenharmony_ci
113af6ab5fSopenharmony_ci
123af6ab5fSopenharmony_ci## TypeScript
133af6ab5fSopenharmony_ci
143af6ab5fSopenharmony_ci
153af6ab5fSopenharmony_ci```
163af6ab5fSopenharmony_ci
173af6ab5fSopenharmony_ci    let x!: number // Hint: x will be initialized before usage
183af6ab5fSopenharmony_ci
193af6ab5fSopenharmony_ci    initialize()
203af6ab5fSopenharmony_ci
213af6ab5fSopenharmony_ci    function initialize() {
223af6ab5fSopenharmony_ci        x = 10
233af6ab5fSopenharmony_ci    }
243af6ab5fSopenharmony_ci
253af6ab5fSopenharmony_ci    console.log("x = " + x)
263af6ab5fSopenharmony_ci
273af6ab5fSopenharmony_ci```
283af6ab5fSopenharmony_ci
293af6ab5fSopenharmony_ci## ArkTS
303af6ab5fSopenharmony_ci
313af6ab5fSopenharmony_ci
323af6ab5fSopenharmony_ci```
333af6ab5fSopenharmony_ci
343af6ab5fSopenharmony_ci    function initialize() : number {
353af6ab5fSopenharmony_ci        return 10
363af6ab5fSopenharmony_ci    }
373af6ab5fSopenharmony_ci
383af6ab5fSopenharmony_ci    let x: number = initialize()
393af6ab5fSopenharmony_ci
403af6ab5fSopenharmony_ci    console.log("x = " + x)
413af6ab5fSopenharmony_ci
423af6ab5fSopenharmony_ci```
433af6ab5fSopenharmony_ci
443af6ab5fSopenharmony_ci
45