型，Duck typing）最初是由Dave Thomas在Ruby社群中提出的，推断型别用了这个论证法「如果它像什么，而且其它地方也像什么，那么它就是什么。」在某些程式设计环境中，两个物件可以有相同的型别，即使它们没有什么交集。一个例子是C++中迭代器和指针所拥有的的双重性，两者皆以不甚相同的机制实作并提供一个* 运算。这个技术之所以常被称作「鸭子型别」，是基于这句格言：「如果它摇摇摆摆的走法很像鸭子，而且它的嘎嘎叫声也像鸭子，那它就是一只鸭子！」
显示宣告和隐式暗示.许