gpt4 book ai didi

javascript - 如何将IIFE包裹的JS文件导入TS

转载 作者:行者123 更新时间:2023-12-05 08:05:01 24 4
gpt4 key购买 nike

我有一个 TS 文件,我想导入一个封装在 IIFE 中的 JS 库的功能。该库目前通过在窗口对象上设置属性来公开其功能。如何将此库导入 TS?我尝试在每个函数之前添加 exports,但出现错误 file is not a module。我是否应该硬着头皮手动复制代码?

为了避免 XY 问题,我正在制作一个网站,前端和后端都有一些需要执行的通用功能。我正在研究使用 TS 的无服务器后端。如果那是一种反模式并且我应该完全做其他事情,我也会接受它作为答案。

最佳答案

我没有找到一种特别优雅的方法来做到这一点,但我通过从匿名函数返回我需要的特定函数并导出 IIFE 的结果得到了我想要的功能。像这样:

JS 库(我添加了 export defaultreturn { ... })

export default (function () {
function foo() { ... }
function bar() { ... }
function baz() { ... }
...

// the library makes some functions available to the window
window['baz'] = baz

// I manually export the functions I need
return {
'foo': foo
'bar': bar
}
})()

TS 文件:

import lib from './library.js'
lib.bar()

我的 tsconfig.json 文件中也有 "esModuleInterop": true

关于javascript - 如何将IIFE包裹的JS文件导入TS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66299323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com