Det er mulig å betegne objsom any, men det Tap hele hensikten med å bruke Loggfila. obj = {}innebærer objer en Object. Merking det som anygir ingen mening. For å oppnå den ønskede konsistens et grensesnitt som kan defineres som følger.
interface LooseObject {
[key: string]: any
}
var obj: LooseObject = {};
Eller å gjøre det kompakt:
var obj: {[k: string]: any} = {};
LooseObjectkan akseptere felt med noen streng som nøkkel og anyskriver som verdi.
obj.prop = "value";
obj.prop2 = 88;
Den virkelige elegansen til denne løsningen er at du kan ta med typesafe felt i grensesnittet.
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;