TypeScriptで動的なキャストみたいなことってできるんでしょうか?

// どこかで定義されたclass
class X {}

interface AX extends X {
a: string;
}

func(x: X) {
if ( xが a: string というプロパティを持っていれば ) {
// ここではxをAXとして扱いたい
}
}