Constrain generic types with extends:
interface HasLength {
length: number;
}
function logLength<T extends HasLength>(item: T) {
console.log(item.length);
}
logLength("hello"); // OK: strings have length
logLength([1, 2]); // OK: arrays have length
logLength(42); // Error: numbers don't have length