string {
return 'wtf';
}
function field<T extends string>(name: string): T | undefined {
const value = getValue(name);
if (typeof value === 'string') {
return value; // error: Type 'string' is not assignable to type 'T | undefined'.
}
return undefined;
}
У стринга больше значений в типе, чем у Т (в данном случае) Надо extends понимать
если ты закроешь generic литеральным типом, то сразу увидишь несостыковку
Обсуждают сегодня