0
我想使用Javascript對象作爲散列表類型。該記錄的方式做與語法如下:繼承對象的方法,如接口中的keys()
interface MyHashMap {
[name:string]: string;
}
但我很想能夠訪問對象的方法,如鑰匙(),例如 做到以下幾點:
let m : MyHashMap = { foo: "why", bar: "not" }
console.log(m.keys().sort())
但是,這並不工作:
$ tsc src/testsort.ts
src/testsort.ts(6,15): error TS2339: Property 'keys' does not exist on type 'MyHashMap'.
然而,這工作:
console.log(Object.keys(m).sort())
但是,這顯然是不必要的冗長,並不反映這樣的事實,即 MyHashMap是一個對象,並且我希望它被視爲這樣。有 有辦法表達這個嗎?
此外,有沒有一種簡單的方法來泛型對象,而不僅僅是數組?
啊好,我明白我很困惑,我以爲鍵()是Object.prototype中,但實際上它只是在對象本身。因此,無論如何Object.keys(m)是正確的方法。謝謝。 – niXar
不客氣! –