使用Typescript中的枚举键创建界面

时间:2019-06-02 07:09:05

标签: typescript enums interface

我想用我的枚举建立一个界面。

仅因为一个应该更改而另一个也需要更改。 我想更仔细地更改代码。

枚举的键与接口的键相同。

export enum SmsReplaceKeyEnum {
  STAY_DATE = "%STAYDATE%",
  STAY_DATE_YMD = "$STAYDATEYMD%",
  ROOMTYPE_N_COUNT = "%ROOMTYPENCOUNT%",
  BOOKERNAME = "%BOOKER%",
  TOTAL_PRICE = "%TOTALPRICE%"
}

interface IPareser {
  STAY_DATE: string;
  STAY_DATE_YMD: string;
  ROOMTYPE_N_COUNT: string;
  BOOKERNAME: string;
  TOTAL_PRICE: string;
}

我也有这个

export const SmsReplaceKeyEnumKeys = [
  "STAY_DATE",
  "STAY_DATE_YMD",
  "ROOMTYPE_N_COUNT",
  "BOOKERNAME",
  "TOTAL_PRICE"
];

我尝试过

interface IPareser {
  [key in SmsReplaceKeyEnumKeys]: string;
}

interface IPareser {
  [key keyof SmsReplaceKeyEnumKeys]: string;
}

最终目标是使用列表中的所有键创建对象的类型。

1 个答案:

答案 0 :(得分:2)

您不能在TS(现在,不超过3.5版)的接口声明内使用mapped types语法。您可以像这样直接从您的枚举中创建所需的类型:

223520    14.0
223521    65.0
223522    13.0
223523    39.0
223524    13.0
223525     3.0
223526    10.0
223527    19.0
223528    16.0
223529    29.0
Name: Kol1_1Y, dtype: float64

df_prog['Kol1_1Y'] = df5['Kol1_1Y']
df_prog['Kol2_1Y'] = df5['Kol2_1Y']
df_prog['Kol1_3M'] = df5['Kol1_3M']
df_prog['Kol2_3M'] = df5['Kol2_3M']
df_prog.to_excel("C:\python\progGB.xlsx")

df_prog

0           RESPR   PREVPR  Kol1_1Y Kol2_1Y Kol1_3M Kol2_3M
0   0.4944  0.4944  1.4894  NaN NaN NaN NaN
1   0.7073  0.7073  3.2020  NaN NaN NaN NaN
2   0.3965  0.3965  -0.3989 NaN NaN NaN NaN
3   0.4501  0.4501  -0.1826 NaN NaN NaN NaN
4   0.0271  0.0271  -6.1202 NaN NaN NaN NaN
5   0.2488  0.2488  -2.8447 NaN NaN NaN NaN
6   0.5190  0.5190  0.0176  NaN NaN NaN NaN
7   0.6667  0.6667  2.2334  NaN NaN NaN NaN
8   0.7708  0.7708  4.5216  NaN NaN NaN NaN
9   0.7074  0.7074  2.9906  NaN NaN NaN NaN