Import Aliases
Import Aliases
About
- Naming Conflicts: Solve identifier clashes
- Readability: Clarify origins
- Syntax:
as
keyword - Usage: Common with platform libraries
Main Topics
-
Basic Alias
-
Definition: Simple renaming
-
Example:
import 'package:flutter/material.dart' as material; material.Text('Hello');
-
-
Conflict Resolution
- Definition: Same-named classes
- Example:
import 'package:graphql/client.dart' as gql; import 'package:another_gql/client.dart' as agql;
-
Readability Improvement
-
Definition: Clarify source
-
Example:
import 'package:timezone/timezone.dart' as tz; final now = tz.TZDateTime.now(tz.local);
-
-
Platform Libraries
- Definition: Web vs io
- Example:
import 'dart:html' as html; import 'dart:io' as io;
-
Common Conventions
- Definition: Community standards
- Example:
import 'package:flutter_test/flutter_test.dart' as test; import 'package:mockito/mockito.dart' as mockito;
How to Use
- Conflicts: When names collide
- Clarity: Long package names
- Testing: Mock libraries
- Platform: Conditional imports
How It Works
- Namespace: Creates new prefix
- Access: Dot notation
- Scope: Only affects import
- Performance: No runtime cost
Example:
import 'package:http/http.dart' as http;
import 'package:local_storage/local_storage.dart' as storage;
class ApiService {
final http.Client client;
final storage.LocalStorage cache;
ApiService(this.client, this.cache);
}
Conclusion
Import aliases provide an elegant solution to naming conflicts while improving code clarity. By using the as keyword, developers can disambiguate similar classes and make library origins immediately apparent in the code.