类型表示元组类型,对象的键为字符串文字

时间:2017-07-21 10:14:12

标签: typescript

给定一个界面:

interface EPostageInsertExEvent_Parameter {
    readonly Doc: Word.Document;
    cpDeliveryAddrStart: number;
    cpDeliveryAddrEnd: number;
    readonly cpReturnAddrStart: number,
    readonly cpReturnAddrEnd: number;
    readonly xaWidth: number;
    readonly yaHeight: number;
    readonly bstrPrinterName: string;
    readonly bstrPaperFeed: string;
    readonly fPrint: boolean;
    fCancel: boolean;
}

如何将由该接口的键组成的元组类型定义为字符串文字?换句话说,相当于以下内容:

type EPostageInsertExEvent_ArgNames = ['Doc', 'cpDeliveryAddrStart', 'cpDeliveryAddrEnd',
    'cpReturnAddrStart', 'cpReturnAddrEnd', 'xaWidth', 'yaHeight', 'bstrPrinterName',
    'bstrPaperFeed', 'fPrint', 'fCancel'];

1 个答案:

答案 0 :(得分:1)

目前在TypeScript中无法实现。 GitHub中有一个feature request允许这样做,但那里没有多少动作。 (您可能想要给它一个并描述您的用例,或者您可能不会。)TypeScript还没有对类型函数的广泛支持。现在你最接近的是:

type EPostageInsertExEvent_ArgNames = Array<keyof EPostageInsertExEvent_Parameter>;

但这并不能保证关键字的存在性,唯一性或顺序。抱歉没有更好的消息。