20/10/11 01:46:46.27 +wOaiLh4.net
>>556
この場合は多分同等なのでシンプルな前者で良い
後者はTを他の箇所(戻り値やコールバック関数の引数など)でも使う場合に適していることがある
例えば
function double<T extends IPoint>(p: T): T {
p.x *= 2;
p.y *= 2;
return p;
}
とか
function check<T extends IPoint>(p: T, validator: (p: T) => boolean): void {
if (!validator(p)) { throw new Error('...'); }
}
とか
ただしこれらの場合でも必ずしもextendsが適しているとは限らないので注意(特に上の例はかなり適当なので)