Olá, Ademilson!
Entendo que a sintaxe object : TypeToken<T>() {}.type pode parecer um pouco complicada à primeira vista, mas vou tentar simplificar isso para você.
O object : TypeToken<T>() {}.type é uma maneira de lidar com a problemática do apagamento de tipos genéricos em tempo de execução no Java e, consequentemente, no Kotlin. O que acontece é que, em tempo de execução, o Java não sabe qual é o tipo real de um objeto genérico. Por exemplo, se você tem uma lista de objetos List<String>, em tempo de execução, o Java só sabe que é uma List, mas não sabe que é uma lista de String.
O TypeToken é uma classe do Gson que permite preservar informações de tipo em tempo de execução. Quando você cria uma instância anônima de TypeToken com object : TypeToken<T>() {}, você está criando um objeto que mantém a informação de tipo T em tempo de execução. O .type é então usado para obter essa informação de tipo.
Vamos a um exemplo prático. Suponha que você tem um JSON que representa uma lista de strings e quer convertê-lo para um objeto List<String>:
val json = "[\"Hello\", \"World\"]"
val type = object : TypeToken<List<String>>() {}.type
val list = Gson().fromJson(json, type)
Neste caso, type é um Type que representa List<String>. Quando você passa esse Type para Gson().fromJson(), o Gson sabe que deve converter o JSON para uma List<String>, e não apenas para uma List.
Espero ter ajudado e bons estudos!