如何将 JS 文件中由 IIFE 初始化的 var 导入到 TS class?
How to import a var initialized by an IIFE in JS File to a TS class?
我的最终目标是将steelseries.js(https://github.com/HanSolo/SteelSeries-Canvas)集成到用react编写的Grafana插件中。任重而道远...
目前,我正在尝试在 ts class.
中导入 steelseries
var
总而言之,我有一个具有以下结构的 JS 文件(超过 10000 行):
var helloWorld = (function() {
var helloDisplay = function () {
console.log("Hello World");
}
return {msgDisplay : helloDisplay}
}) ();
我想将其导入到 TS class 中:
// how to import my JS script in myJs ?
class MyClass {
...
tsHello (): void {
myJs.msgDisplay()
}
}
什么是最简单的 and/or 最有效的方法(JS 文件很长)?
(我的 class 在 TS 文件中。我尝试了很多东西,我添加了 .d.ts 文件但没有成功)。
这对你有帮助吗?
interface HelloWorld{
msgDisplay():void,
foo:string,
baz: number
}
var helloWorld = (function():HelloWorld {
var helloDisplay = function () {
console.log("Hello World");
}
return {
msgDisplay : helloDisplay,
foo: 'bar',
baz: 123
}
})()
不确定,这是最好的方法,但它有效且简单。
- tsconfig.json 文件:
"compilerOptions": {
"target": "es5",
"module": "es6",
"strict": true,
}
- 在 js 文件中:添加导出
export var helloWorld = (function() { ...
- 创建一个与 js 文件同名的 .d.ts 文件
export var helloWorld: any;
在ts文件中导入
import { helloWorld as myJs } from './varIIFE'
class MyClass {
tsHello () {myJs.msgDisplay()}
}
let myInstance = new MyClass();
myInstance.tsHello()
在生成的js文件中添加index.html中的模块属性
<script src="compilatedfile.js" type="module"></script>
我的最终目标是将steelseries.js(https://github.com/HanSolo/SteelSeries-Canvas)集成到用react编写的Grafana插件中。任重而道远...
目前,我正在尝试在 ts class.
中导入 steelseries
var
总而言之,我有一个具有以下结构的 JS 文件(超过 10000 行):
var helloWorld = (function() {
var helloDisplay = function () {
console.log("Hello World");
}
return {msgDisplay : helloDisplay}
}) ();
我想将其导入到 TS class 中:
// how to import my JS script in myJs ?
class MyClass {
...
tsHello (): void {
myJs.msgDisplay()
}
}
什么是最简单的 and/or 最有效的方法(JS 文件很长)? (我的 class 在 TS 文件中。我尝试了很多东西,我添加了 .d.ts 文件但没有成功)。
这对你有帮助吗?
interface HelloWorld{
msgDisplay():void,
foo:string,
baz: number
}
var helloWorld = (function():HelloWorld {
var helloDisplay = function () {
console.log("Hello World");
}
return {
msgDisplay : helloDisplay,
foo: 'bar',
baz: 123
}
})()
不确定,这是最好的方法,但它有效且简单。
- tsconfig.json 文件:
"compilerOptions": { "target": "es5", "module": "es6", "strict": true, }
- 在 js 文件中:添加导出
export var helloWorld = (function() { ...
- 创建一个与 js 文件同名的 .d.ts 文件
export var helloWorld: any;
在ts文件中导入
import { helloWorld as myJs } from './varIIFE' class MyClass { tsHello () {myJs.msgDisplay()} } let myInstance = new MyClass(); myInstance.tsHello()
在生成的js文件中添加index.html中的模块属性
<script src="compilatedfile.js" type="module"></script>