在typescript的已定义接口中添加属性

时间:2014-06-17 06:05:32

标签: javascript typescript

我有两个interface定义如下。

  interface TitleFont{
      fontFamily:string;
      fontStyle:string;
      size:string; \\ need only for the tilte property.
      opacity:number;
   }
  interface ChartFont{
      fontFamily:string;
      fontStyle:string;
      opacity:number;
   }

我班级的两个属性是定义的接口类型

 class Chart  {
     title: TitleFont;
     chartTitle: ChartFont;  
  }

与ChartFont相比,尺寸是TilteFont中添加的额外属性。有没有办法定义一个接口并将其用于属性。

提前致谢

1 个答案:

答案 0 :(得分:1)

此处不会使用继承并从TitleFont扩展ChartFont

interface ChartFont{
    fontFamily:string;
    fontStyle:string;
    opacity:number;
}
interface TitleFont extends ChartFont {
    size:string; \\ need only for the tilte property.
}

我们仍然有两个接口,但在很多情况下,我们只能使用基本的(ChartFont)这样

var fontSetting1 : ChartFont = Chart.title
var fontSetting2 : ChartFont = Chart.chartTitle
...
// follows common behaviour for ChartFont interface
...

如果以后需要,我们可以提升:

var titleFontSetting : TitleFont = <TitleFont>fontSetting1;