TypeScriptのドキュメント等を読んでいてGenericsの所まで来たのですが、どういったものなのかイマイチつかめず質問します。
(ActionScript3でのinterfaceとの違いやメリットが解らない?同じようなものなのか、全く違うものなのか)

たとえば_allLength変数に数値を足していくような処理を書くとして、TypeScriptでGenericsを使うと

var _allLength = 0;

interface SomeItem {
  getLength(): number;
}

function addLength<T extends SomeItem>(x: T) {
  _allLength = _allLength + x.getLength();
}

のような感じになると思うのですが(間違っていたらご指摘ください)
ActionScript3では、同じような事を行なう場合、以下のようにInterfaceを定義してそのInterfaceを受け取る処理を書いていました

//Interface定義(as3)
public interface ISomeItem {
    function getLength():int
}

public var _allLength:int = 0;

//Interfaceを受け取って処理(as3)
public function addLength(item:ISomeItem):int {
    _allLength = _allLength + item.getLength();
}

これらが結果は同じになると思うのですがGenericsの使い方として合っているのかや考え方はこのような感じでいいのかなどイマイチ掴めていないのでこちらの投稿させていただきました

よろしくお願いします