【发布时间】:2021-05-17 07:06:12
【问题描述】:
根据this answer:
使用
void代替意味着 forEach 承诺不使用返回值,因此可以使用返回任何值的回调来调用它
根据TypeScript 3.0 release notes
...
unknown是any的类型安全对应物。任何东西都可以分配给unknown,但unknown不能分配给除了它自己和any之外的任何东西......
尽管我这么想,但从这些描述中我找不到这些类型之间的任何单一区别。
我还注意到,与unknown 不同,当void 用作函数参数的一种类型时,调用函数时可以省略该参数,即使它没有标记为可选:
declare const x: (a: void) => void
x()
虽然这种行为在使用泛型代码时有时很有用,但看起来很奇怪。如果void 应该只用于返回类型,为什么它有这种特殊行为,不像其他类型?
【问题讨论】: