Эта ошибка предупреждает, что вашему универсальному типу P
нельзя присвоить {}
, поскольку универсальный тип P
может быть более определенного (или ограниченного) типа.
Это означает, что значение {}
не будет удовлетворять всем возможным типам, которые можно использовать для универсального типа P
.
Например, у меня может быть такой тип (такой же ошибки):
function fn<T extends boolean>(obj: T = false) {
}
и вы можете иметь тип, который является более конкретным, чем логическое значение, например:
type TrueType = true;
и если вы передадите его Общей функции fn:
const boolTrue: True = true;
fn(boolTrue);
присвоение false не соответствует TrueType, даже если TrueType учитывает ограничение универсального T расширяет логическое значение
Для получения дополнительной информации об этом сообщении об ошибке см. Проблему, которая предложила это сообщение об ошибке https://github.com/Microsoft/TypeScript/issues/29049.