在typescript中引用javascript文件

时间:2014-10-09 08:56:20

标签: javascript reference typescript

我想在打字稿文件中使用javascript函数。如何在typescript文件中引用包含该函数的javascript文件?

我试过

<reference path="../libs/myjsfile.js" />

这会在构建时出现错误:Cannot resolve referenced file: ../libs/myjsfile.js

3 个答案:

答案 0 :(得分:37)

虽然上面的两个答案适用于小型或单个变量API,但正确的答案是为JavaScript文件编写一个类型声明文件。

您的示例的类型声明文件将命名为myjsfile.d.ts,其中 .d.ts 后缀告诉TypeScript编译器它正在解析声明文件。如果使用Visual Studio,只要在您正在处理的项目中的某个地方(任何地方),TypeScript编译器就会识别您的声明文件。

声明文件存储有关JavaScript变量,函数和对象的元数据,因此TypeScript编译器可以完成其工作。如果您的JavaScript文件恰好是常用的库或框架,DefinitelyTyped绝对是查找所需定义文件的地方。

如果您的JavaScript是您自己的作品或不太知名,您必须编写自己的类型声明文件。请参阅The TypeScript Handbook中的编写.d.ts文件部分。

如果名称声明文件听起来令人生畏,请不要担心 - 它们比程序更容易编写。此外,请记住,您不需要为JavaScript文件指定所有元数据,只需指定所需的功能。

如果您需要任何帮助,请与我联系!

答案 1 :(得分:7)

您只需要告诉编译器该方法存在于typescript之外:

declare function myJavaScriptFunction(param1: number, param2: JQuery): void;

确保网站加载所需的所有文件,普通的js文件和typescript编译器生成的js文件

答案 2 :(得分:0)

  

这会在构建时带来错误:无法解析引用的文件:../ libs / myjsfile.js

参考文件标签适用于 TypeScript 而非JavaScript。您可以在页面中使用脚本标记加载JavaScript(或类似requirejs)。

要使用TypeScript中的JavaScript,您将声明您要用于TypeScript消费的JavaScript的API(如AKR指出的那样)。