js/typescript
To dynamically allocate key/value to an object
interface AnObject {
[key: string]: any
}
interface AnObjectRec extends Record<string, any> {}
let o: AnObject = {}
o.test = "ok"
Differences between Map and Record
Map: key can be any type, perf > Object. Has set/get/has/delete methods.
Record: TS compiles it as Object
Parameters: default and optional
function fn(n: number = 1) {...} // n is default param
function fn(n?: number){...} // n is optional param