想象一下,我有3个枚举类型为{[key: string]: Type}
的枚举,这很普遍,我认为最好有一个泛型来减少重复次数,但是我不确定如何做到这一点:
我在想这样的事情:
export interface KeyType<T> {
[key: string]: T;
}
并像这样使用它:
KeyType<HeadingOptionType>
但是它不起作用:(。
在下面的示例中,如何编写一个写入类型来删除{[key: string]}
重排?
export const HeadingOption: {[key: string]: HeadingOptionType} = {
H1: 1,
H2: 2,
H3: 3,
H4: 4,
H5: 5,
H6: 6,
};
export const EnumColumn: {[key: string]: EnumColumnType} = {
C1: 1,
C2: 2,
C3: 3,
C4: 4, // not supported yet but should be.
};
export const RtlMirror: {[key: string]: RtlMirrorType} = {
ON: true,
OFF: false,
};
答案 0 :(得分:1)
我想您在索引器属性方面遇到错误。您可以通过更改接口以键入别名import { Component,ViewChild } from '@angular/core';
@ViewChild(Nav) nav: NavController;
来摆脱它。
无论如何,我认为这种类型的输入不是有用的,因为您需要手动定义值类型。描述枚举的流程中的常见做法是:
type KeyType<T> = { [string]: T };