5
到目前爲止,我已經試過:你可以在打字稿中寫一個通用拷貝對象函數嗎?
function copyObject<K, V> (object: { [k: K]: V; }) {
var objectCopy = {};
for (var key in object)
{
if (object.hasOwnProperty(key))
{
objectCopy[key] = object[key];
}
}
return objectCopy;
}
但是,這給出了一個編譯器警告:「指數的簽名參數類型必須是‘串’或‘號’」。
也許有可能將密鑰類型限制爲數字或字符串?或者只是用兩種類型的鍵來重載它?
但是,它看起來不像它將類型T限制爲'對象'類型,這意味着即使你做了也沒有類型錯誤,比如:copyObject(5)。我在上面的評論中添加的超載解決方案在這種情況下會給你一個警告,所以看起來更好。 – AGD