name: arkts-error-fixes description: Solutions for ArkTS compilation errors and type mismatches. Load this skill when compilation fails or when fixing ArkTS type errors.
Harmony Error Fixes
This skill provides solutions for common ArkTS compilation errors and type mismatches encountered during HarmonyOS development.
Error Categories
| Category | Description |
|---|---|
| Notification API Type Errors | ContentType type incompatibility |
| Window API Type Errors | Type inference issues with window.getLastWindow |
| AppStorage Type Errors | Type inference errors with AppStorage.get() |
| Object Spread Type Errors | Type inference issues with object spread |
| @StorageLink Default Value Errors | Missing default values for @StorageLink properties |
| Object Literal Interface Errors | Object literals without explicit interfaces |
| Object Literal Type Errors | Using object literal types in return type annotations |
| Function Return Type Errors | Limited return type inference |
| Arrow Function Conversion Errors | Using function expressions instead of arrow functions |
| Color Property Errors | Non-existent Color properties |
| Interface Method Signature Errors | Method signature mismatches in object literals |
| AvoidArea Type Errors | Missing visible property in AvoidArea type |
Standalone Function this Errors |
Using this in standalone functions |
| TitleButtonRect Type Errors | Incorrect return type for getTitleButtonRect; accessing non-existent properties (left, top) |
| Catch Clause Type Errors | Type annotations in catch clauses |
| ESObject Type Errors | Restricted usage of ESObject type |
| Resource Conversion Errors | Resource to string/number conversion errors |
| Unused Variable Warnings | Declared but never used variables |
| IDataSource Type Errors | LazyForEach requires IDataSource implementation |
| Duplicate Entry Errors | Multiple @Entry decorators in same file |
| Possibly Null Errors | Object possibly null when accessing properties |
Quick Reference
| Error Type | Solution |
|---|---|
| Notification type error | Cast to number type |
| Window type error | Use callback pattern for getLastWindow |
| AppStorage type error | Use @StorageLink with LocalStorage or AppStorage.setAndLink (avoid setOrCreate) |
| Object spread error | Explicitly type objects |
| @StorageLink default value error | Add = undefined or specific default value |
| Object literal interface error | Define interface before using object literal |
| Object literal type error | Define interface and use it as return type |
| Function return type error | Add explicit return type annotation |
| Arrow function conversion error | Convert function to arrow function => |
| Color property error | Use hex color values instead of non-existent Color properties |
| Interface method signature error | Use property syntax method: () => {} instead of method syntax |
| AvoidArea type error | Add visible: false property to AvoidArea object |
Standalone function this error |
Pass context as parameter: function foo(context: Context) |
| TitleButtonRect type error | Use window.TitleButtonRect instead of window.Rect; only width and height properties available |
| Catch clause type error | Remove type annotation or use any/unknown |
| ESObject type error | Use ESModule or specific types instead of ESObject |
| Resource conversion error | Use Resource directly in UI components or use ResourceManager |
| Unused variable warning | Use console.info/hilog or delete unused variable |
| IDataSource type error | Implement IDataSource interface for LazyForEach |
| Duplicate Entry error | Remove extra @Entry, use @Component for child components |
| Possibly Null error | Use !== null check or optional chaining |