泛型不是这个样子使用吗?怎么定义了泛型函数之后,在函数内部无法读取参数属性

7***@qq.com
- 发布:2024-07-25 13:51
- 更新:2024-07-29 20:42
- 阅读:191

强类型语言中,在AsyncFunction中不知道这个T一定有name?除非通过继承约束了泛型T,不然随便传个没有name的类型,就发生错误了
interface IOptions {
name: string
}
// 所有传进来的泛型T,必须实现interface IOptions
function AsyncFunction<T extends IOptions>(options: T) {
console.log(options.name)
}
class AddCalendarOption implements IOptions {
name: string = 'AddCalendarOption'
}
AsyncFunction(new AddCalendarOption())