如何将打字稿模块用作可导入代码以及用作网络的环境代码

时间:2019-05-18 14:00:12

标签: typescript web

我需要一些可通过脚本标签导入在浏览器中用作“直接依赖”的javascript代码,并且在笑话测试或更结构化的代码(例如VueJS Web应用程序)中具有相同的“可导入”代码。 / p>

原因是我有一个Web应用程序,其中包含许多页面,其中包含使用一些“通用”库(StringUtilities,RestUtilities等)的更简单的javascript:所有这些库均以Typescript作为模块编写,因此我可以使用所有它们直接使用,而无需任何模块加载程序系统或webpack或任何其他工具:仅需要tsc。 但是现在我正在使用VueJ和typescript和WebPack做一些很棒的事情,我想重用那些库(也已经通过qunit进行了很好的测试),但是当我尝试在Jest中进行一些测试时,我得到了一个错误,因为公用库不存在。

我的模块都是这样的:

module MyOrg {
  export module Str {
    export function IsNullOrEmpty(val: string | null | undefined): boolean {
      return val === undefined || val === null || val === "";
    }
  }
}

在网页中,我可以像这样简单地导入它:

<script src="js/MyOrg.Str.js"></script>

最后像这样使用它:

if (MyOrg.Str.IsNullOrEmpty("")){
 //..
}

与此同时,我想在VueJs应用程序中使用一种更现代的方法,例如:

export function IsNullOrEmpty(val: string | null | undefined): boolean {
      return val === undefined || val === null || val === "";
    }
...

import {IsNullOrEmpty} from "MyOrg.Str";


我在想,也许我可以将所有模块重写为导出函数列表,并通过构建系统使它们转换为模块中的功能,从而使这些代码可用于遗留代码:可以吗?以及如何?

0 个答案:

没有答案