检查出口类中的价值是否存在

问题描述

我有这样的课

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类语言中的存在

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

但是我做得不好

解决方法

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

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