У меня есть псевдоним типа на нескольких интерфейсах:
export interface A {}
export interface B {}
export interface C {}
export type Reference = A | B | C;
У меня есть метод с именем getReference
, который возвращает по умолчанию массив Reference. Я хотел бы, чтобы мой метод взял универсальный тип и проверил, находится ли данный тип в моем псевдониме типа.
Что у меня есть:
export const getReference = (slug: ReferencesSlugs): (state: object) => Array<Reference> => {
....... // some code
// return Reference[]
}
Что я хочу:
Dev может передавать универсальный тип и проверку Typescript, если данный тип находится в псевдониме типа (Ссылка).
export const getReference = <T>(slug: ReferencesSlugs): (state: object) => Array<T> => {
....... // some code
// As T is in Reference type -> return T[]
}
this.store.pipe( select(getReference<A>('onchonch')) ); // VALID, tslint is ok
this.store.pipe( select(getReference<E>('onchonch')) ); // INAVLID, E is not in my type alias.
Спасибо заранее:)