试图找出TypeScript中这两种类型之间的区别:
foo: object
和
bar: {}?
示例:尝试将一个object变量分配给假设处理请求的标头信息的变量:
headers: object;
Run Code Online (Sandbox Code Playgroud)
导致错误:
类型'object'不能赋值给'{[key:string]:string}`.
如果使用相同的条件headers: {},则会导致结论{}略微不那么严格.
这两个函数有什么区别呢?两者的工作原理相同。我知道扩展如何在接口中工作,但我无法理解这里的差异
const func = <T extends string>(str: T): T => str
Run Code Online (Sandbox Code Playgroud)
const func = <T = string>(str: T): T => str
Run Code Online (Sandbox Code Playgroud)