2016-04-13 35 views
2

.d.ts dosyasında, bir nesneyi dize anahtarlarına ve T değerlerine göre nasıl tanımlarım?Yazdığınız bir nesneyi rasgele anahtarlarla nasıl bildirilir?

örn.

declare var Game: { 
    creeps: Object<string, Creep>; // not sure what syntax to use here 
}; 

declare class Creep { 
    // definition... 
} 

Game.creeps bir object, ama (onlar çalışma zamanında tanımlanmışlarsa - Bir sözlük gibi kullanıyorum) o olacak hangi özellikleri/tuşları bilmiyorum ancak, bildiğim, tüm değerleri Creep s olacaktır.

IDE, "Nesne genel değil" diyor, bu nedenle sözdizimi oldukça doğru değil.

cevap

5

bir endeks imza kullanın:

declare var Game: { 
    creeps: {[key:string]: Creep} 
}; 
+1

Mükemmel, teşekkür ederim! Ne arayacağınızı bilmiyordum. ~ 5min içinde kabul edilecek – mpen

+0

Bu hala [VSCode'daki hatalar] (http://i.imgur.com/Sf3txDO.png). Bu VS Kodu bir hata mı yoksa "herhangi bir özellik Tamam" demenin başka bir yolu var mı? – mpen

+0

Sözlüğe 'creeps.key' yerine bir sözlük olarak erişebilirsiniz, yani 'creeps [' key '] '. Anahtar ismini biliyorsanız, – basarat

İlgili konular