Kam*_*zot 6 javascript typescript
假设我有一个a.js包含以下内容的文件:
export function a() {}
Run Code Online (Sandbox Code Playgroud)
我希望它像这样从文件b.ts(在同一目录中)导入它:
import { a } from './a.js'
Run Code Online (Sandbox Code Playgroud)
如何告诉 TypeScript 文件 a.js 包含的内容,以便此导入的编译成功?
要使其工作所需的是与 JavaScript 文件(a.d.ts在本例中)相同的打字稿定义文件,其中包含:
export function a();
Run Code Online (Sandbox Code Playgroud)
它还可以指定参数类型、附加的导出函数和类,并且必须使用export关键字来指示 JavaScript 文件实际公开的内容。
另一个变化是这个 JavaScript 模块需要被导入b.ts为:
import { a } from './a' // without .js
Run Code Online (Sandbox Code Playgroud)
所以它考虑了打字稿定义文件。它仍将使用a.js文件中的实现。它也适用于 webpack。
如果你不想描述里面的内容a.js并且让 TypeScript 接受它,你可以创建这样的a.d.ts文件:
declare var whateva:any;
export = whateva;
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样导入它:
import * as ajs from './a'
Run Code Online (Sandbox Code Playgroud)
然后引用a.jsTypeScript 文件中公开的任何函数,如下所示:
ajs.a();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
958 次 |
| 最近记录: |