objOlarak belirtmek mümkündür any, ama bu daktiloyu kullanmanın tüm amacını bozar. obj = {}ima objbir Object. Bunu işaretlemek anymantıklı değil. İstenilen kıvamı elde etmek için bir arayüz aşağıdaki gibi tanımlanabilir.
interface LooseObject {
[key: string]: any
}
var obj: LooseObject = {};
VEYA kompakt hale getirmek için:
var obj: {[k: string]: any} = {};
LooseObjectherhangi bir dizeye sahip alanları anahtar olarak kabul edebilir ve anydeğer olarak yazabilir.
obj.prop = "value";
obj.prop2 = 88;
Bu çözümün gerçek zarafeti, arayüze tipik güvenli alanlar ekleyebilmenizdir.
interface MyType {
typesafeProp1?: number,
requiredProp1: string,
[key: string]: any
}
var obj: MyType ;
obj = { requiredProp1: "foo"}; // valid
obj = {} // error. 'requiredProp1' is missing
obj.typesafeProp1 = "bar" // error. typesafeProp1 should be a number
obj.prop = "value";
obj.prop2 = 88;
Bu Orijinal soru cevaplar da, cevap burada @GreeneCreations sorunu nasıl yaklaşılması başka bir bakış açısı verebilir.