April 2018
Beginner
536 pages
13h 21m
English
We can only refer to one type when declaring a generic type constraint. Let's imagine that we need a generic class to be constrained, so it only allows types that extend the following two interfaces:
interface Foo {
doSomething(): void;
}
interface Bar {
doSomethingElse(): void;
}
We may think that we can define the required generic constraint as follows:
class Example1<T extends Foo, Bar> {
private prop!: T;
public doEverything() {
this.prop.doSomething();
this.prop.doSomethingElse(); // error
}
}
However, this code snippet will throw a compilation error. We cannot specify multiple types when declaring a generic type constraint. However, we can work around this issue by using Foo and Bar in a ...