class HttpClient {
get(url: string) {
// 实际的网络请求逻辑
console.log(`GET request to ${url}`);
}
post(url: string, data: any) {
// 实际的网络请求逻辑
console.log(`POST request to ${url} with data:`, data);
}
}
function injectHttpClient(target: any) {
return class extends target {
httpClient: HttpClient;
constructor(...args: any[]) {
super(...args);
this.httpClient = new HttpClient();
}
};
}
@injectHttpClient
class UserService {
getUserData() {
this.httpClient.get('/user/data');
}
updateUser(data: any) {
this.httpClient.post('/user/update', data);
}
}
// 使用示例
const userService = new UserService();
userService.getUserData();
userService.updateUser({ name: 'John' });