TypeScript - Typing Function

TypeScript allows you to utilize the is keyword as a method return to validate the type of an object.

interface IUser {
  firstName: string;
  height: number;
}

interface IAdmin extends IUser {
  superPower: () => void;
}

function isAdmin(object: unknown): object is IAdmin {
  return "height" in object && object.height > 195;
}

const resp = await fetch("https://dummyjson.com/users/3");
const user: unknown = await resp.json();

if (isAdmin(user)) {
  user.superPower(); // Auto-complete provided here!
}

Using object is IAdmin as the return type of isAdmin allows the function to work as a boolean in practice, but it also tells your TypeScript tooling that the object is an IAdmin inside that if. So you should get Auto-complete, type checking, etc.