Итак, у меня есть следующий образец кода:
interface MyInterface<T> {
myFunc(value: T): void;
}
class MyImplementation implements MyInterface<number> {
myFunc(value: number): void {
console.log(value / 2);
}
}
function myTest(): MyInterface<number|string> {
return new MyImplementation(); // doesn't look quite right
}
myTest().myFunc("I am not a number"); // outputs NaN
Я не могу понять, почему машинописный текст позволяет мне возвращать MyImplementation в место MyInterface . Я понимаю, что мы хотим, чтобы номер можно было присвоить номеру | строка , но, конечно, не для общих c параметров.