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),但不太清楚如何为复杂接口正确编写它们。是否有检查运行时类型的标准方法或最佳实践?
请指教