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

Рейтинг: 2Ответов: 1Опубликовано: 13.01.2023

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

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

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

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

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

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

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

Ответы

▲ 1Принят

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

type TODOID = number;

type TODO = {
  id: TODOID
}

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

Или вот так

type TODO = {
  id: number
}

function todo(id: TODO['id']) {
  return id;
}