Это зависит от того, хотите ли вы использовать тип объекта в подписи (либо в другом аргументе, либо в типе возвращаемого значения). Если нет, используйте Any(?)
, как сказано в ответе Кевина Робателя; но если вы это сделаете, вам нужно использовать дженерики, например, (из стандартной библиотеки)
inline fun <T, R> T.run(block: T.() -> R): R
inline fun <T> T.takeIf(predicate: (T) -> Boolean): T?
и т.д.