Quick answer: Construct via Array[Resource]([...]) or copy via typed.assign(untyped).
Function returns Array with mixed Resource elements. You assign to var items: Array[Resource] and Godot complains about type mismatch.
The Fix
# Construct a typed array directly
var items: Array[Resource] = Array([res1, res2], TYPE_OBJECT, "Resource", null)
# Or simpler 4.3+:
var items: Array[Resource]
items.assign(get_untyped_array()) # type-checks each element
# Or use literal initializer:
var items: Array[Resource] = [res1, res2] # literals work directly
assign validates each element against the typed array’s element type, raising on mismatch. Literal initializers infer type when unambiguous.
Verifying
Pass mixed Array; assign() copies; typed methods work after. Pass an Array containing a non-Resource; assign() throws.
“assign for type-checked copy. Literal for direct init.”
Related Issues
For C# List property edits, see List property. For C# Export flags, see flags.
assign() copies typed. Errors loud.