13af6ab5fSopenharmony_ci# Conditional types are not supported 23af6ab5fSopenharmony_ci 33af6ab5fSopenharmony_ciRule ``arkts-no-conditional-types`` 43af6ab5fSopenharmony_ci 53af6ab5fSopenharmony_ci**Severity: error** 63af6ab5fSopenharmony_ci 73af6ab5fSopenharmony_ciArkTS does not support conditional type aliases. Introduce a new type with 83af6ab5fSopenharmony_ciconstraints explicitly, or rewrite logic using ``Object``. The keyword 93af6ab5fSopenharmony_ci``infer`` is not supported. 103af6ab5fSopenharmony_ci 113af6ab5fSopenharmony_ci 123af6ab5fSopenharmony_ci## TypeScript 133af6ab5fSopenharmony_ci 143af6ab5fSopenharmony_ci 153af6ab5fSopenharmony_ci``` 163af6ab5fSopenharmony_ci 173af6ab5fSopenharmony_ci type X<T> = T extends number ? T : never 183af6ab5fSopenharmony_ci 193af6ab5fSopenharmony_ci type Y<T> = T extends Array<infer Item> ? Item : never 203af6ab5fSopenharmony_ci 213af6ab5fSopenharmony_ci``` 223af6ab5fSopenharmony_ci 233af6ab5fSopenharmony_ci## ArkTS 243af6ab5fSopenharmony_ci 253af6ab5fSopenharmony_ci 263af6ab5fSopenharmony_ci``` 273af6ab5fSopenharmony_ci 283af6ab5fSopenharmony_ci // Provide explicit constraints within type alias 293af6ab5fSopenharmony_ci type X1<T extends number> = T 303af6ab5fSopenharmony_ci 313af6ab5fSopenharmony_ci // Rewrite with Object. Less type control, need more type checks for safety 323af6ab5fSopenharmony_ci type X2<T> = Object 333af6ab5fSopenharmony_ci 343af6ab5fSopenharmony_ci // Item has to be used as a generic parameter and need to be properly 353af6ab5fSopenharmony_ci // instantiated 363af6ab5fSopenharmony_ci type YI<Item, T extends Array<Item>> = Item 373af6ab5fSopenharmony_ci 383af6ab5fSopenharmony_ci``` 393af6ab5fSopenharmony_ci 403af6ab5fSopenharmony_ci 41