假设我有一个界面:
interface IUser {
email: string;
id: number;
phone: string;
};
然后我有一个函数,它需要subset(或完全匹配)这样的类型.也许它会通过一个完整的物体,让它在{email: "t@g.com"}
秒内通过.我希望类型判断器同时考虑这两种情况.
例子:
function updateUser(user: IUser) {
// Update a "subset" of user attributes:
$http.put("/users/update", user);
}
Typescript支持这种行为吗?我发现它非常有用,尤其是对于Redux这样的范例.
澄清一下,目标是:
- 避免重新编写接口并手动将所有属性设置为可选.
- 避免指定意外属性(例如拼写错误).
- 避免使用命令式逻辑,比如
if
条语句,这样会失go 编译时类型判断的好处.
UPDATE: Typescript已经宣布支持mapped types,一旦发布,应该可以解决这个问题.