在TypeScript获取文件中引用vanilla js文件不是模块

问题描述

我正在尝试将一个文件导入 TypeScript,该文件基本上只是一个您放入标签中的 js 文件。我尝试了一些不同的东西。

// global.d.ts
declare module 'myfile.js'

反应文件内部:

// component.tsx
import { foo } from '../lib/myFile.js' // This is saying it is not a module

在 js 文件内部,它看起来像这样几次,所以不确定我需要如何引用该文件:

(function( something ) {
    something.Foo = function (){}
}(window.something = window.something || {}));

对如何使用此文件有任何想法吗?我是否需要检查并声明其中所有内容的类型?

编辑:我已将 allowJS 添加到我的 tsconfig 但它仍然不起作用。

解决方法

您只能导入从文件中导出的内容。

如果您的文件只包含立即调用的函数或顶级代码,您只需像这样导入文件本身:

import '../lib/myFile.js'

然而,这有点奇怪。我建议用一个函数包装所有东西,然后导出然后导入该函数。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...