Tôi có một lớp với hơn 80 phương thức và mỗi phương thức chấp nhận một đối tượng có chứa một số giao diện được xác định.Tạo một hỗn hợp các giao diện trong Typescript
class Stuff {
/* many more */
getAccount(req: IAccount, callback: ICallback) {
return this._call('getAccount', req, callback);
}
getIds(req: IIDs, callback: ICallback) {
return this._call('getIds', req, callback);
}
/* many more */
}
khá 'nhàm chán' thứ, vì nó chỉ lập bản đồ với phương pháp underlaying _call
và làm cho nó là loại an toàn cho từng phương pháp.
Nhưng đôi khi những req
đối tượng param được tạo thành từ 2 giao diện trở lên, và thay vì tạo giao diện khác cho mỗi lần có một "vụng về", như thế này:
export interface ILoled extends IAccount {
loled: boolean;
}
export interface IRofloled extends ILoled {
rofled: boolean;
}
class Stuff {
getLols(req: ILoled){
}
getRofls(req: IRofloled){
}
}
là có cách nào tôi có thể chỉ cần đặt nó như là một "nội tuyến" mixin của giao diện bên trong danh sách tham số phương pháp? tương tự (mà rõ ràng là không làm việc):
class Stuff {
getMoreStuff(req: <{} extends IAccount, ITime>) {
}
}
Tôi e rằng bạn phải khai báo một giao diện siêu. –