为什么Object.keys(this).map(key =>(this as any)[key])?

时间:2018-06-12 02:54:31

标签: javascript arrays typescript

审核this method,我只是好奇它为什么使用Object.keys(this).map(key => (this as any)[key])?  只需拨打Object.keys(this).indexOf(type) !== -1

即可
/**
 * Checks if validation type is valid.
 */
static isValid(type: string) {
    return  type !== "isValid" &&
        type !== "getMessage" &&
        Object.keys(this).map(key => (this as any)[key]).indexOf(type) !== -1;
} 

1 个答案:

答案 0 :(得分:4)

该行不会创建对象键的数组,它会创建对象的数组,并检查数组中是否包含type。如果它是

会更清楚
/**
 * Checks if validation type is valid.
 */
static isValid(type: string) {
  return  type !== "isValid" &&
    type !== "getMessage" &&
    Object.values(this).includes(type);
} 

(当然,必要时包括polyfills)