miliko0022
@miliko0022
Краткие личные сведения, включая интересующую вас

Как typescript сравнивает объявленные типы?

interface SStitle {
  title: string;
  }
  const x:SStitle = { title: "AZ5"};

  if(???){...}esle{...} //x === SStitle

У меня есть интерфейс SStitle. Я хочу написать в if (???)такой логике, что тип X сравнивается с типом SStitle.
  • Вопрос задан
  • 358 просмотров
Решения вопроса 1
Zraza
@Zraza
Помог ответ? Отметь решением!
В рантайме тайпскрипта не существует, остается голый js, т.е. такая проверка работать не будет
Или делать проверку по косвенный признакам, типа
function isSStitle(arg: any): arg is SStitle {
    return arg && typeof arg.title === 'string';
}

Здесь использован type guard https://basarat.gitbooks.io/typescript/docs/types/...

Или делать как класс и через instanceof:
class SStitle {
  title: string;
  constructor(title: string) {
    this.title = title;
  }
}
  const x:SStitle = new SStitle("AZ5");

  if(x instanceof SStitle){...}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы