我正在为名为pi Vision的工具开发自定义组件。它使用AngularJS,并构建您必须将component-template.html,component.js包含在文件夹中的自定义组件,然后动态加载新组件。
component.js文件必须采用此格式:
(function (CS,d3) {
// SOME MANDATORY CODE WITH THIS window.PIVisualization
// SOME CUSTOM CODE, WITH MY LOGIC
})(window.PIVisualization,d3);
我要做的是使用TypeScript生成此组件。但是问题是,当我尝试将逻辑分为文件中时,我无法在单个文件中输出普通的JavaScript。
我有:
import { MyClass } from "./myclass"
(function (CS,d3) {
// STUFF
let x = new MyClass("test");
// MORE STUFF
})(window.PIVisualization,d3);
myclass.ts有:
export class MyClass {
constructor(nome: string) {
return nome;
}
};
用模块AMD和Outfile测试了Tsconfig.json。
输出正在产生
之类的东西define("testclass", ["require", "exports"], function (require, exports) {
"use strict";
我不相信它会在浏览器中运行。
我要寻找的是一种在移动时,结果将是一个文件,并在iife之前定义了myClass(一个名称空间是可取的(,而IIFE使用该类别的IIFE。
这是"模块AMD"的预期输出;如果您不使用模块加载程序,包括捆绑到JavaScript的较新版本的类型,听起来您需要模块"无"。请参阅--module
的TypeScript选项文档,尽管您当然可以在tsconfig.json中指定。
请注意,JavaScript输出将默认使用IIFE;如果要更改代码封装方式,则可能需要更改打字稿输入,在这种情况下,您的问题可能会受益于与期望相比,发布--module=None
的输出。