我们假设我们有一个类:
class House {
street: string;
pools: number;
helicopterLandingPlace: boolean;
}
现在我建立了一项服务来更新我的房子。
putHouse(house: House) {
// some put request
}
但是有时候我希望房子的一部分能够得到更新。
patchHouse(house: ?????) {
// some patch request...
}
在第二个函数中声明变量函数的最简洁方法是什么。
提前感谢您的帮助!
答案 0 :(得分:3)
实现此目的的一种方法是使用Partial
类型,例如:
class House {
street: string;
pools: number;
helicopterLandingPlace: boolean;
}
function patchHouse(house: Partial<House>) {
console.log(house);
}
patchHouse({street: 'street'});
&#13;
Partial<T>
是一个具有以下定义的接口:
type Partial<T> = { [P in keyof T]?: T[P]; };
这意味着通过使用keyof
运算符,我们得到类似的结果:
Partial<House> {
street: string?;
pools: number?;
helicpterLandingPlace: boolean?;
}
答案 1 :(得分:1)
interface Addressable {
street: string;
}
interface Swimmable {
pools: number;
}
interface Landable {
helicopterLandingPlaces: boolean;
}
class House implements Addressable, Swimmable, Landable {
street: string;
pools: number;
helicopterLandingPlaces: boolean;
}
function patch(house: Swimmable) {
house.pools++;
}