将属性的Strip接口设置为值

时间:2019-02-02 20:53:37

标签: typescript

有什么方法可以从接口中删除值:

tab

位置:

export interface FileQuery {
    kind: 'FileQuery';
    path: string;
    encoding?: FileEncodings | null;
    flag?: FileSystemFlags;
}

是否不包含StripValue<FileQuery>

将包含这样的类型:

kind

2 个答案:

答案 0 :(得分:1)

您可以使用两个界面:

export interface FileQuery {
    path: string;
    encoding?: FileEncodings | null;
    flag?: FileSystemFlags;
}

export interface SpecialFileQuery implements FileQuery {
    kind: 'FileQuery';
}

答案 1 :(得分:0)

使用略:

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 };
    }
}