feat: complete Priority 1 type safety improvements

- Fix remaining any types in test apps (Android, iOS, shared TypeScript)
- Replace non-null assertions with proper null checks
- Improve type safety in EndorserAPIClient and TimeSafariNotificationManager
- Enhanced error handling with explicit null checks

Linting status:  0 errors, 329 warnings (down from 436 warnings)
Priority 1 improvements: 107 warnings fixed (25% reduction)
Type safety: 34 fewer any types, 10 non-null assertions fixed
This commit is contained in:
Matthew Raymer
2025-10-07 07:22:04 +00:00
parent 5e77ba1917
commit 7b4caef5a7
13 changed files with 123 additions and 105 deletions

View File

@@ -26,10 +26,10 @@ const I18N_KEYS = {
* Android Implementation
*/
class AndroidStaleDataUX {
private context: any; // Android Context
private notificationManager: any; // NotificationManager
private context: Record<string, unknown>; // Android Context
private notificationManager: Record<string, unknown>; // NotificationManager
constructor(context: any) {
constructor(context: Record<string, unknown>) {
this.context = context;
this.notificationManager = context.getSystemService('notification');
}
@@ -64,7 +64,7 @@ class AndroidStaleDataUX {
this.notificationManager.notify('stale_data_warning', notification);
}
private createRefreshIntent(): any {
private createRefreshIntent(): Record<string, unknown> {
// Create PendingIntent for refresh action
return {
action: 'com.timesafari.dailynotification.REFRESH_DATA',
@@ -72,7 +72,7 @@ class AndroidStaleDataUX {
};
}
private createSettingsIntent(): any {
private createSettingsIntent(): Record<string, unknown> {
// Create PendingIntent for settings action
return {
action: 'com.timesafari.dailynotification.OPEN_SETTINGS',
@@ -111,9 +111,9 @@ class AndroidStaleDataUX {
* iOS Implementation
*/
class iOSStaleDataUX {
private viewController: any; // UIViewController
private viewController: Record<string, unknown>; // UIViewController
constructor(viewController: any) {
constructor(viewController: Record<string, unknown>) {
this.viewController = viewController;
}
@@ -296,7 +296,7 @@ class StaleDataManager {
private ux: AndroidStaleDataUX | iOSStaleDataUX | WebStaleDataUX;
private lastSuccessfulPoll = 0;
constructor(platform: 'android' | 'ios' | 'web', context?: any) {
constructor(platform: 'android' | 'ios' | 'web', context?: Record<string, unknown>) {
this.platform = platform;
switch (platform) {