【发布时间】:2012-12-08 21:11:22
【问题描述】:
我有一个简单的 TypeScript (ts),它需要来自 JavaScript 文件的函数。如何将该 js 文件导入 ts 文件?我是否必须为该 js 文件创建一个 ts 文件才能在我的 ts 文件中使用它?
【问题讨论】:
标签: typescript
我有一个简单的 TypeScript (ts),它需要来自 JavaScript 文件的函数。如何将该 js 文件导入 ts 文件?我是否必须为该 js 文件创建一个 ts 文件才能在我的 ts 文件中使用它?
【问题讨论】:
标签: typescript
最简单的方法是 declare 您正在使用的函数:
File1.js
function greet() { return "Hello!"; }
File2.ts
declare function greet(): string;
/* ... later ... */
var hi = greet();
如果您的场景更复杂(即多个文件引用 File1.js,或者 File1.js 中有许多函数会使 File2.ts 混乱),您可以创建一个 File1.d.ts 文件并从文件2.ts:
File1.d.ts
function greet(): string;
File2.ts
/// <reference path="File1.d.ts" />
/* ... later ... */
var hi = greet();
【讨论】:
仅针对存档,如果您在 TS 文件中为 JavaScript 文件添加 /// 引用,编译器将尝试验证 JS 文件中的所有代码并抛出一个巨大的错误列表。用 jQuery 或类似的东西试试,你就会明白我的意思了。
【讨论】:
Incorrect reference: Only files with a .ts extension are allowed - 或者你可能打算将 .js 重命名为 .ts。无论哪种方式,你肯定是对的,你会弄得一团糟:-)