It's not a property. Basically it's a reference to “string” type which is being used by functions from Elixir's String module. To fully understand it please read more here.
One reason for using String.t() is that Elixir discourages the use of string(). A string() is a "charlist" in Elixir, while String.t() is a UTF-8 encoded binary.