type ConstructorType1 = <T>(Constructor: { new (...arg: any[]): T }) => void; // s100
type ConstructorType2<T> = (Constructor: { new (...arg: any[]): T }) => void; // s101
老师,s100和s101有什么区别?s100是否可以理解为将返回的函数的类型通过类型别名的方式提取出来.
而s101使用时候必须要定义泛型或者提供默认值,s100的使用场景有哪些?