以下是僞代碼,但我認爲它使最好的清楚什麼,我試圖做的:有沒有辦法動態檢查類型的instanceof?
class C {
public var x: number = 34;
}
var enforceType<T> = (x: T) : T {
if (x instanceof T) {
return x;
} else {
console.log(x);
console.log(T.toString());
throw ("wrong type!");
}
}
enforceType<C>({}); // should raise the exception!
的問題是,T是不是一個類,而是一個類型,所以的instanceof不能正常工作,也沒有toString。但有沒有辦法在運行時檢查一個值是否是一個類型,我有一個編譯時間?
好吧,我承認示例(的選擇不當:在我實際的代碼,我真的很想做一個動態檢查,雖然,因爲{}是通過HTTP接收的值 – user2645074