Ограничения универсального параметра класса TypeScript - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь объявить класс TypeScript с ограниченным универсальным параметром. В C # компилируется следующее:

public class NewClass<T> where T: BaseClass {
}

Что такое эквивалентный TypeScript?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Для обоих классов и интерфейсов в качестве базовых необходимо ограничить T следующим образом:

export class NewClass<T extends BaseClass> {
}

В то время как вы получаете классы из интерфейсов с implements, это не относится к общим ограничениям, что делает этот код возможным:

export class NewClass<T extends BaseInterface> implements BaseInterface {
}
0 голосов
/ 14 мая 2018

Вы ищете ключевое слово extends.Вы можете использовать его сразу после универсального параметра, чтобы ограничить его подтипом указанного типа.

Так что эквивалент для вашего примера будет:

class NewClass<T extends BaseClass> {
    // Things...
}

Вы можете прочитать больше ообщие ограничения в документации здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...