gpt4 book ai didi

typescript - 使用编译器 API 进行类型推断

转载 作者:搜寻专家 更新时间:2023-10-30 20:57:11 25 4
gpt4 key购买 nike

我正在尝试使用 TypeScript 的编译器 API 来执行非常基本的类型推断,但我无法从文档或谷歌搜索中找到任何有用的信息。

本质上,我想要一个函数 inferType,它接受一个变量并返回其推断的定义:

let bar = [1, 2, 3];
let bar2 = 5;

function foo(a: number[], b: number) {
return a[0] + b;
}

inferType(bar); // => "number[]"
inferType(bar2); // => "number"
inferType(foo); // "(number[], number) => number"

我是否可以通过编译器 API 实现此目的?如果没有,无论如何我可以通过其他方式实现这一目标吗?

最佳答案

您可以使用我的 TypeScript Compiler API Playground 示例 LanguageService 类型检查示例:https://typescript-api-playground.glitch.me/#example=ts-type-checking-source

这也是 node.js 脚本,它解析输入的 typescript 代码,并根据它的使用方式推断任何符号的类型。它使用 TypeScript Compiler API,创建一个程序,然后魔法就是“program.getTypeChecker().getTypeAtLocation(someNode)”

工作示例:https://github.com/cancerberoSgx/typescript-plugins-of-mine/blob/master/typescript-ast-util/spec/inferTypeSpec.ts

如果您不熟悉编译器 API,请从这里开始。此外,您还有几个项目可以使它变得更容易:

祝你好运

关于typescript - 使用编译器 API 进行类型推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49355257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com