如何强制我的自定义 tslint 规则使用与 tslint 正在使用的相同版本的打字稿模块

how do I force my custom tslint rule to use the same version of the typescript module as the one tslint is using

我很可能做错了什么,但我不知道是什么。

在我的自定义规则中,我正在检查节点的 SyntaxKind 以控制我的流程,如下所示:

import * as ts from "typescript"

function processPropertyName(pn: ts.PropertyName) {
    switch (pn.kind) {
        case ts.SyntaxKind.Identifier:
        case ts.SyntaxKind.StringLiteral:
            //doX
            break
        case ts.SyntaxKind.NumericLiteral:
            //doY
            break
    }
}

我已经将打字稿作为一个模块安装了 当我开发和测试规则时,这很好用。但是,当我发布包并在另一个项目中使用它时,SyntaxKind 值被搞乱了。例如:NumericalLiteral 在我的环境中的值为 8,但在消费环境中不是。很可能是因为使用了另一个版本的 typescript 包。 但是如何确保我在规则文件中导入的打字稿包与用于解析源文件的打字稿包相同?

没关系,我找到了解决方案:)