input: from typing import List
  
  def generate_sample_data(n: int, min_age: int, max_age: int) -> List[tuple]:
      """ Generate sample data for a web application using Python's Faker library.
      The output should contain three columns of data: name, email, and age.
      The function takes an integer n to specify the number of records to generate,
      and min_age and max_age to specify the age range. It returns a list of tuples
      containing the generated data.
  
      >>> generate_sample_data(2, 18, 60)
      [('John Doe', 'john.doe@example.com', 29), ('Jane Doe', 'jane.doe@example.com', 55)]
      """
output:     
      from faker import Faker
      import random
  
      fake = Faker()
      sample_data = []
  
      for _ in range(n):
          name = fake.name()
          email = fake.email()
          age = random.randint(min_age, max_age)
          sample_data.append((name, email, age))
  
      return sample_data
  