Как усилить проверку примитивных типов в TypeScript?

Допустим у меня в разных местах используются примитивные типы. Чтобы не усложнять себе жизнь созданием классов, но при этом чтобы иметь возможность иметь статическую типизацию я хотел бы указывать тип строки. К сожалению, TypeScript никак не проверяет, что тип корректен. Подскажите, можно ли сделать то, к чему я стремлюсь и как?

type IFooIndex = string;
type IBarIndex = string;

class Foo {
    id: IFooIndex;
}

class Bar {
    id: IBarIndex;
}

function findFoo(index: IFooIndex) {
    // searching by IFooIndex
}

findFoo( new Bar().id ); // тут хотелось бы ошибку компиляции
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
yarkov
@yarkov
Помог ответ? Отметь решением.
Брэндинг вам в помощь
type IFooIndex = string & {_type?: 'foo'};
type IBarIndex = string & {_type?: 'bar'};

class Foo {
    id: IFooIndex;
}

class Bar {
    id: IBarIndex;
}

function findFoo(index: IFooIndex) {
    // searching by IFooIndex
}

findFoo( new Bar().id );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы