¿Puedo inferir el tipo de una propiedad en el delegado?

Tengo este código. findViewById con un delegado.

 val backgroundImage: ImageView by lazy { view<ImageView>(R.id.item_component_section_background) } fun <T: View> view(id : Int) : T { val view : View = findViewById(id) ?: throw IllegalArgumentException("Given ID could not be found in current layout!") @Suppress("UNCHECKED_CAST") return view as T } 

¿Hay alguna forma de eliminar la view<ImageView> de algo así como view en el bloque perezoso? ¿Puedo get o deducir el tipo de propiedad en la view() function view() ?