Слияние кода завершено, страница обновится автоматически
Основной причиной использования типа параметра out
является возможность присваивания одного и того же класса с различными типами параметров, связанными через подтипизацию.
Пример:
class A<out T> {
fld: T // fld должен быть помечен как 'только для чтения'
конструктор (a: T) {
this.fld = a; // Это допустимо, так как только-для-чтения переменная может быть переопределена при инициализации
}
foo (b: T) { // Ошибка компиляции, тип входного параметра функции не может быть 'out T'
...
}
foo2 (c: number): T { // Допустимо, тип выходного параметра функции может быть 'out T'
...
}
}
Дополнительные тестовые случаи: #2492
Ценность данного требования заключается в том, что использование типа параметра out
позволяет создавать более гибкие и безопасные системы типов. Он применим в ситуациях, где требуется передача данных только для чтения, чтобы обеспечить корректное выполнение программы и предотвратить изменения значений после их инициализации.
Вход Перед тем как оставить комментарий