有没有办法从一个接口剔除值:
export interface FileQuery {
kind: 'FileQuery';
path: string;
encoding?: FileEncodings | null;
flag?: FileSystemFlags;
}
哪里:
StripValue<FileQuery>
将不包含kind
?
将包含这样的类型:
interface Stripped {
path: string;
encoding?: FileEncodings | null;
flag?: FileSystemFlags;
}
你可以使用两个接口:
export interface FileQuery {
path: string;
encoding?: FileEncodings | null;
flag?: FileSystemFlags;
}
export interface SpecialFileQuery implements FileQuery {
kind: 'FileQuery';
}
使用省略:
export type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
class FileQueryHandler {
static make (a : Omit<FileQuery, 'kind'>): FileQuery {
return { kind: 'FileQuery', ...a };
}
}