我目前正在尝试为 esbuild 构建类型保护生成器库/插件,但是我的 typescript 编译器 API 知识不足以解决我的问题。
我的库导出了一个名为的函数isA
,该函数接受一个类型参数和一个对象:
import {isA} from 'esbuild-type-guards'
type InputType = {
str1: string
str2: string
num1: number
bol1: boolean
obj1: {
str1: string
num1: number
}
}
const test = (data: InputType) => {
if(!isA<InputType>(data)) throw new Error('Validation failed')
// ...
}
然后 esbuild 插件应该找到该isA
函数的所有引用/调用并将其转换为类型保护。
我的问题是:有没有一种简单的方法可以找到isA
AST 中的所有调用并获取(/解析)它们的类型参数和参数?
提前致谢!