1. Объявление объектного литерала (вроде {a: string}), называемого также формой. Используйте ее, когда знаете, какие поля будет иметь объект, или когда все его значения будут иметь один тип.
2. Объявление пустого объектного литерала ({}). Старайтесь его избегать.
3. Тип object. Используйте его, когда вам просто нужен объект и неважно, какие у него поля.
4. Тип Object. Старайтесь его избегать.