sam*_*mvv 7 compiler-construction typescript typescript-compiler-api
我正在构建一个小脚本,该脚本使用TypeScript Compiler API扫描具有给定类型成员的所有接口,其源代码可在此处找到。我检查这些类的成员,看看它们是如何相互关联的。
我的问题是:我怎么知道一种类型何时可以分配给另一种类型?我搜索了TypeChecker
一种方法,但找不到。有没有人有任何指示?这是一个应该能够分析的东西的例子:
export enum ASTKind {
Number,
Addition,
Multiplication,
}
export interface AST {
kind: ASTKind
}
export interface BinaryExpression extends AST {
left: AST
right: AST
}
export interface Addition extends BinaryExpression {
kind: ASTKind.Addition
}
export interface Multiplication extends BinaryExpression {
kind: ASTKind.Multiplication
}
Run Code Online (Sandbox Code Playgroud)
本质上,我想要一个谓词,说明是否ASTKind.Multiplication
可分配给ASTKind
(在这种情况下为真)。