Để chỉ mở rộng các câu trả lời thú vị ở trên! Và dành cho những người hạ cánh ở đây trong khi tìm kiếm phiên bản Một phần với khả năng yêu cầu! Đây là một đoạn tôi đã thực hiện!
PartialReq
Bạn muốn có một phần của giao diện, nhưng đồng nghĩa với việc yêu cầu một số trường! Đây là cách nó được thực hiện
export type PartialReq<T, Keys extends keyof T = keyof T> =
Pick<Partial<T>, Exclude<keyof T, Keys>>
& {
[K in Keys]: T[K]
};
Sử dụng ví dụ
export interface CacheObj<SigType = any, ValType = any> {
cache: Map<SigType, ValType>,
insertionCallback: InsertionCallback<SigType, ValType>
}
export class OneFlexibleCache<SigType = any, ValType = any> {
private _cacheObj: CacheObj<SigType, ValType>;
constructor(
cacheObj: PartialReq<CacheObj<SigType, ValType>, 'insertionCallback'>
) {
cacheObj = cacheObj || {};
this._cacheObj = {
this._caches.set(
cacheSignature,
new OneFlexibleCache<InsertionSigType, InsertionValType>({
insertionCallback
})
);
Ở đây bạn có thể thấy rằng nó hoạt động hoàn hảo

Nếu yêu cầu không được cung cấp

CẬP NHẬT: Đối với cách sử dụng mà tôi ngụ ý ở trên, câu trả lời tốt hơn
Tôi vừa lướt qua tài liệu và tìm thấy Omit .
https://www.typescriptlang.org/docs/handbook/utility-types.html#omittk
Tôi đến để thêm nó. Nhưng trước khi làm, tôi chỉ thấy câu trả lời thú vị này. Nó bao gồm tất cả:
https://stackoverflow.com/a/48216010/7668448
Chỉ cần kiểm tra nó ra! Nó chỉ ra cách thực hiện cho tất cả các phiên bản khác nhau của Typescript! Và vì lợi ích của việc không lặp lại! Đi và kiểm tra!