Angular报错:Property 'getUsers' does not exist on type 'UserService'求助
Angular中UserService.getUsers()不存在的问题排查
我是Angular新手,正在跟着教程编写代码,在UserService中定义了获取API响应的getUsers方法,但在UsersComponent中注入服务后调用该方法时,收到错误提示“Property 'getUsers' does not exist on type 'UserService'”,不过VSCode能识别该函数定义,以下是相关代码:
UserService中的代码
//Fetching users getUsers(size: number =10): Observable<any>{ return this.http.get<any>(`${this.apiUrl}/?results=${size}`); }
UsersComponent中的代码
export class UsersComponent implements OnInit { constructor(private userService: UserService) { } ngOnInit(): void { this.userService.getUsers(10).subscribe( (results: any) => { console.log(results); } ); } }
可能的原因如下:
- 服务类未正确导出:检查
UserService类是否添加了export关键字,比如是否为export class UserService { ... },未导出的类无法在其他组件中正确识别类型。 - 导入路径错误:确认
UsersComponent中导入UserService的路径是否正确,比如import { UserService } from './user.service';,路径错误会导致导入的不是你定义的服务类。 - 服务未注册:确保
UserService已经通过@Injectable({ providedIn: 'root' })装饰器注册为根服务,或者在对应的模块providers数组中声明,未注册的服务注入后可能不是预期的实例。 - VSCode TypeScript缓存问题:重启VSCode,或者通过
Ctrl+Shift+P执行"TypeScript: Restart TS Server",刷新类型检查缓存。 - Angular编译缓存问题:执行
ng clean清理编译缓存,再重新启动项目ng serve,避免旧编译文件干扰类型判断。
内容的提问来源于stack exchange,提问作者Lavin Ghan
相关产品推荐
相关产品推荐

