Как динамически унаследовать тип от типа typescript

У меня есть тип TODO

type TODO = {
  id: number,
  ...
}

И есть функция, которая удаляет TODO (принимая todo.id)

const removeTodo = (todoID: number) => {...}

Но я хочу как-то связать todo.id с типом TODO. Чтобы, когда я изменил TODO на это:

type TODO = {
  id: string,
  ...
} 

функция removeTodo тоже ожидала именно string, а не number


Ответы (1 шт):

Автор решения: SwaD

Могу предложить вот такой вариант:

type TODOID = number;

type TODO = {
  id: TODOID
}

function todo(id: TODOID) {
  return id;
}

Или вот так

type TODO = {
  id: number
}

function todo(id: TODO['id']) {
  return id;
}
→ Ссылка