13af6ab5fSopenharmony_ci# Array literals must contain elements of only inferrable types 23af6ab5fSopenharmony_ci 33af6ab5fSopenharmony_ciRule ``arkts-no-noninferrable-arr-literals`` 43af6ab5fSopenharmony_ci 53af6ab5fSopenharmony_ci**Severity: error** 63af6ab5fSopenharmony_ci 73af6ab5fSopenharmony_ciBasically, ArkTS infers the type of an array literal as a union type of its 83af6ab5fSopenharmony_cicontents. However, a compile-time error occurs if there is at least one 93af6ab5fSopenharmony_cielement with a non-inferrable type (e.g. untyped object literal). 103af6ab5fSopenharmony_ci 113af6ab5fSopenharmony_ci 123af6ab5fSopenharmony_ci## TypeScript 133af6ab5fSopenharmony_ci 143af6ab5fSopenharmony_ci 153af6ab5fSopenharmony_ci``` 163af6ab5fSopenharmony_ci 173af6ab5fSopenharmony_ci let a = [{n: 1, s: "1"}, {n: 2, s : "2"}] 183af6ab5fSopenharmony_ci 193af6ab5fSopenharmony_ci``` 203af6ab5fSopenharmony_ci 213af6ab5fSopenharmony_ci## ArkTS 223af6ab5fSopenharmony_ci 233af6ab5fSopenharmony_ci 243af6ab5fSopenharmony_ci``` 253af6ab5fSopenharmony_ci 263af6ab5fSopenharmony_ci class C { 273af6ab5fSopenharmony_ci n: number = 0 283af6ab5fSopenharmony_ci s: string = "" 293af6ab5fSopenharmony_ci } 303af6ab5fSopenharmony_ci 313af6ab5fSopenharmony_ci let a1 = [{n: 1, s: "1"} as C, {n: 2, s : "2"} as C] // a1 is of type "C[]" 323af6ab5fSopenharmony_ci let a2: C[] = [{n: 1, s: "1"}, {n: 2, s : "2"}] // ditto 333af6ab5fSopenharmony_ci 343af6ab5fSopenharmony_ci``` 353af6ab5fSopenharmony_ci 363af6ab5fSopenharmony_ci## See also 373af6ab5fSopenharmony_ci 383af6ab5fSopenharmony_ci- Recipe 038: Object literal must correspond to some explicitly declared class or interface (``arkts-no-untyped-obj-literals``) 393af6ab5fSopenharmony_ci- Recipe 040: Object literals cannot be used as type declarations (``arkts-no-obj-literals-as-types``) 403af6ab5fSopenharmony_ci 413af6ab5fSopenharmony_ci 42