-
Notifications
You must be signed in to change notification settings - Fork 396
Open
Description
因为t并不等于User,t是User的子类,所以t可能会有更多的属性,而这只是返回了User,可以这样修改👇
type User = {
id: number;
kind: string;
};
function makeCustomer<T extends User>(u: T):User {
return {
id: u.id,
kind: 'customer'
}
}
function makeCustomer<T extends User>(u: T):T {
return {
...u,// 这里u拥有T的全部属性,返回T的扩展也是可以的
id: u.id,
kind: 'customer'
}
}
Metadata
Metadata
Assignees
Labels
No labels