13af6ab5fSopenharmony_ci#  ``as const`` assertions are not supported
23af6ab5fSopenharmony_ci
33af6ab5fSopenharmony_ciRule ``arkts-no-as-const``
43af6ab5fSopenharmony_ci
53af6ab5fSopenharmony_ci**Severity: error**
63af6ab5fSopenharmony_ci
73af6ab5fSopenharmony_ciArkTS does not support ``as const`` assertions because in the standard TypeScript
83af6ab5fSopenharmony_ci``as const`` annotates literals with corresponding literal types, and ArkTS
93af6ab5fSopenharmony_cidoes not support literal types.
103af6ab5fSopenharmony_ci
113af6ab5fSopenharmony_ci
123af6ab5fSopenharmony_ci## TypeScript
133af6ab5fSopenharmony_ci
143af6ab5fSopenharmony_ci
153af6ab5fSopenharmony_ci```
163af6ab5fSopenharmony_ci
173af6ab5fSopenharmony_ci    // Type 'hello':
183af6ab5fSopenharmony_ci    let x = "hello" as const
193af6ab5fSopenharmony_ci
203af6ab5fSopenharmony_ci    // Type 'readonly [10, 20]':
213af6ab5fSopenharmony_ci    let y = [10, 20] as const
223af6ab5fSopenharmony_ci
233af6ab5fSopenharmony_ci    // Type '{ readonly text: "hello" }':
243af6ab5fSopenharmony_ci    let z = { text: "hello" } as const
253af6ab5fSopenharmony_ci
263af6ab5fSopenharmony_ci```
273af6ab5fSopenharmony_ci
283af6ab5fSopenharmony_ci## ArkTS
293af6ab5fSopenharmony_ci
303af6ab5fSopenharmony_ci
313af6ab5fSopenharmony_ci```
323af6ab5fSopenharmony_ci
333af6ab5fSopenharmony_ci    // Type 'string':
343af6ab5fSopenharmony_ci    let x : string = "hello"
353af6ab5fSopenharmony_ci
363af6ab5fSopenharmony_ci    // Type 'number[]':
373af6ab5fSopenharmony_ci    let y : number[] = [10, 20]
383af6ab5fSopenharmony_ci
393af6ab5fSopenharmony_ci    class Label {
403af6ab5fSopenharmony_ci        text : string = ""
413af6ab5fSopenharmony_ci    }
423af6ab5fSopenharmony_ci
433af6ab5fSopenharmony_ci    // Type 'Label':
443af6ab5fSopenharmony_ci    let z : Label = {
453af6ab5fSopenharmony_ci        text: "hello"
463af6ab5fSopenharmony_ci    }
473af6ab5fSopenharmony_ci
483af6ab5fSopenharmony_ci```
493af6ab5fSopenharmony_ci
503af6ab5fSopenharmony_ci
51