如题,事情是这样的,因为我个人的习惯,会为一类函数单独写一个模块。
比如昨天,我写了一个模块单独负责处理数据,以及为未来可能得链接数据库做准备。
有这样一个函数
export function getNickname(session:Session){
// 这里应该写泛型的,可是我不会写啊!
if((session.user as any).name){
return (session.user as any).name
}
return session.username
}
函数非常简单,而我知道,调用这个函数的指令都使用了.userField(['name'])
所以是应该没问题的。
实际上不应该这么写的,那我应该怎么通过书写泛型和类型声明来让ts知道我这里是有name的呢?
我试过学习 按需加载与自动更新 | Koishi只使用类型声明
declare module 'koishi'{
namespace User{
name: string
}
}
但是是不行的,我看到这个user是个Oberver<unknow>
类型的,表示,我应该也许大概得用泛型。但我完全不知道这里应该怎么书写。
求助一下大佬。