检查导出中是否存在值 class

Check does value exits in export class

我有一些class这样的

export interface ILanguage {
  shortName: string;
  shortNameLowercase: string;
  fullName: string;
}

export class Language {
  static readonly ENGLISH: ILanguage = { shortName: 'EN', shortNameLowercase: 'en', fullName: 'ENGLISH' };
  static readonly DUTCH: ILanguage = { shortName: 'NL', shortNameLowercase: 'nl', fullName: 'DUTCH' };
  static readonly FRENCH: ILanguage = { shortName: 'FR', shortNameLowercase: 'fr', fullName: 'FRENCH' };
}

我有这样的 currentLanguage

currentLanguage = 'de';

现在我需要检查 currentLanguage 是否存在于 class 语言中,我已经尝试过

  if (Object.values(Language).includes(currentLanguage)) {
..}

但是我工作得不好

改用Object.keys。 Object.keys(Language)会给你["ENGLISH", "DUTCH", "FRENCH"]。对于这些,您可以查找具有正确名称的语言。

Object.keys(Language).some(k => Language[k].shortNameLowercase == currentLanguage)