【发布时间】:2017-12-06 21:00:39
【问题描述】:
我正在构建一个小脚本,它使用TypeScript Compiler API 扫描具有给定类型成员的所有接口,其中的源代码可以在here 中找到。我检查了这些类的成员,看看它们是如何相互关联的。
我的问题是:我如何知道一种类型何时可以分配给另一种类型?我在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
}
基本上,我想要一个谓词来说明 ASTKind.Multiplication 是否可分配给 ASTKind(在这种情况下是真的)。
【问题讨论】:
标签: typescript compiler-construction typescript-compiler-api