Я в ситуации, когда хотел бы определить тип общего типа, предоставляемого универсальному классу. Например, предполагая у меня есть тип профсоюза, я хотел бы, чтобы различные действия в конструкторе на основе типа используемого:Определить тип параметра типа класса Типcт
type MyType = string | number;
class Foo<T extends MyType>{
private _something;
constructor(_bar?: SomeFunc<T>){
if(...)?
}
}
Из advanced type section я знаю, что могу определить тип параметров функций, но я не могу найти способ выполнить проверку типа общего, предоставленного фактическому классу. Попытка ссылаться на T каким-либо образом приводит к «не может найти имя« T »error (# TS2304). Я нашел несколько сообщений such as this one, но все они, похоже, имеют дело с параметрами функции, на которые была предоставлена первая ссылка.
это не представляется возможным, так как она все больше кажущейся таким образом, есть еще один образец, который я могу использовать здесь?
Благодарим вас, и я понимаю, что я ищу больше времени для компиляции, которое я мог бы использовать, чтобы выбрать метод последующей работы. –
@ AndrewHunter вам нужно предоставить больше *, что вы хотите *, но общая идея заключается в том, что вы также даете экземпляр 'T', например. 'constructor (_bar ?: SomeFunc, someInstance: T) {', и вы можете сделать проверку на 'someInstance' –
basarat
спасибо за ответ, я надеялся попытаться уйти от предоставления экземпляра, но кажется, что это не так возможно в машинописном тексте. Я буду использовать этот шаблон, спасибо еще раз. –