Avatar ·

TypeScript中的接口类型检查:如何判断对象是否符合接口?

大家好!我刚开始学习TypeScript,遇到了一个问题。我有一个`User`接口和一个从API接收数据的函数。我需要检查接收到的对象是否符合这个接口。 这是我的代码: ```typescript interface User { id: number; name: string; email: string; } function processData(data: unknown) { // 如何检查data是否是User? if (data instanceof User) { // 错误:'User'仅指类型,但在此处被用作值 console.log(data.name); } } ``` 我明白`instanceof`不能用于接口,因为它们在运行时会被擦除。但如何检查对象是否包含所有正确类型的必要字段?我看到可以使用自定义类型保护(type guards),但不太清楚如何为复杂接口正确编写它们。是否有检查运行时类型的标准方法或最佳实践? 请指教