让我们以 TypeScript 中的以下简化示例为例:
type Foo = { name: string } | undefined
function fooWorks<T extends Foo>(input: T) {
return input?.name // ok
}
function fooErrors<T extends Foo>(input: Readonly<T>) {
return input?.name // error
}
为什么
fooWorks
可以正常工作,而fooErrors
不能?