Typescriptが型チェックしてくれない?

More than 3 years have passed since last update.

Typescriptで型チェックがうまくいかないことがあったのでメモです。

class Value<T> {

v: T;
constructor(v: T) { this.v = v; }
value(): T { return this.v; }
}

class Title extends Value<String> {}
class Description extends Value<String> {}

var a: Title = new Description('hoge');// エラーになってほしい..

こんな感じのコードを書いたら

当然最後の行でエラーになると思ったら

ビルドが通ってしまった。。

なのでAクラスだけにhogeメソッドを追加したらちゃんとエラーになった。

class Value<T> {

v: T;
constructor(v: T) { this.v = v; }
value(): T { return this.v; }
}

class Title extends Value<String> {
hoge() {}// 追加
}
class Description extends Value<String> {}

var a: Title = new Description('hoge');// エラーになる

インターフェースレベルでチェックしてるのかなぁ。