【问题标题】:how to call static method on an imported typescript class?如何在导入的打字稿类上调用静态方法?
【发布时间】:2019-11-02 01:42:02
【问题描述】:

我有 2 个包裹 包 x 具有静态属性和方法的类 Log

导入包 y 调用静态方法或访问静态属性

它在运行时将类名视为未定义

我试过不带参数的属性和方法

包 x,文件 Log.ts

export class Log {
  static test(){console.info('hello from test');}
}

包装 y:

import {Log} from 'x';
class y1{
 constructor(){
  Log.test();
 }
}

我希望能够调用静态方法。 相反,我得到无法读取未定义的属性“测试”

【问题讨论】:

    标签: javascript typescript methods ecmascript-6 static


    【解决方案1】:

    该文件名为Log.ts - 它将被编译为Log.js。试试这个:

    import { Log } from "./Log.js";
    class y1 {
        constructor() {
            Log.test();
        }
    }
    

    【讨论】:

    • 嗨,杰克,是的,这行得通。这不是我看到其他进口产品的方式。我很高兴它有效,但感觉像是一种解决方法。这是迈向更优雅解决方案的一步,还是最终结果?谢谢马丁
    • 当我将鼠标悬停在原始导入源上时,它看到它引用了构建/索引。我现在在相应的 src/index.ts 中为 Log 添加了一行,这使我的 import 语句无需使用完整路径即可工作。我有点惊讶我需要两次指示导出。一旦在类定义中。一旦进入 index.ts,当我在 index.ts 中没有该行时,我也很惊讶我没有收到编译错误。感谢 Jack 让我走上正确的轨道。马丁
    猜你喜欢
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 2022-11-25
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多