javascript - typescript :将方法添加到类的数组

标签 javascript typescript class model

假设我有一个 Article 模型,其中有一个字段包含不同语言的文章名称:

class Article {
  constructor(public name: Translation[]) { }
}

class Translation {
  constructor(
    public language: string,
    public text: string
  ) { }
}

我希望能够调用一个方法将该文章名称翻译成作为参数给定的语言:

article.name.translate('EN')

如何将该方法添加到该翻译数组?

最佳答案

V1:

class Article {
    constructor(public name: Translation[]) { }

    public translate(language:string):string {
        return this.name.find(t=>t.language==language).text;
    }
}


class Translation {
    constructor(
        public language: string,
        public text: string
    ) { }
}

let a = new Article([
    new Translation('EN', 'Yes'),
    new Translation('DE', 'Ja')
]);
a.translate('EN');

V2:

class Article {
    constructor(public name: TranslatableProperty) { }
}

class TranslatableProperty {
    constructor(public propTranslation:Translation[]) { }   

    public translate(language:string):string {
        return this.propTranslation.find(t=>t.language==language).text;
    }

}

class Translation {
    constructor(
        public language: string,
        public text: string
    ) { }

}

let a = new Article(new TranslatableProperty([
    new Translation('EN', 'Yes'),
    new Translation('DE', 'Ja')
]));
a.name.translate('EN');

关于javascript - typescript :将方法添加到类的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52147543/

相关文章:

javascript - 不同位置的相同文件是否会有不同的 sha1 哈希值?

javascript - 如何删除谷歌地图API中的方向标记

javascript - 简化JS中嵌套的父子代码

javascript - 使用 RouterLink 动态添加元素

objective-c - 我可以创建非 ARC 类的 ARC 子类吗

java - 内核线程定时器中断的优先级队列实现

javascript - 如何通过变量将数据插入MySQL数据库?

javascript - typescript 访问监听器内的全局变量

typescript - Mixin 作为 TypeScript 中的类装饰器不会更新类属性

Java - 从反射中排除父类(super class)字段