This line makes items equal to the typeDict{String, Int64}; it doesn’t actually create a dictionary. You want Dict{String, Int64}() to actually construct a new Dict.
This mistake is so common, that it probably deserve it’s own error message. Something like
push!(::Type{Dict}, whatever...) = error("You are trying to push in a type, maybe you wanted to instantiate your variable with Dict()? Pay special attention to brackets after Dict.")
Another possible improvement would be to change the metric for “closest candidates” so that replacing a type by its instance counts as very “close”. This would put push!(::AbstractDict, ::Pair)` at the top of the list in the current error message.