2014-10-09 78 views
27

我想在打字稿文件中使用JavaScript函数。我怎样才能引用包含打字稿文件内的那个函数的JavaScript文件?打字稿内参考JavaScript文件

我试图

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

此同时建立类似带来了一个错误:Cannot resolve referenced file: ../libs/myjsfile.js

回答

5

你只需要告诉该方法存在外打字稿编译:

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

确保该网站加载所有需要的文件,正常的js文件和打字稿编译器生成的js文件

0

同时建立这样带来了一个错误:无法解析引用的文件:../libs/myjsfile.js

参考文件标签是打字稿不是JavaScript的。您可以在页面中使用脚本标记加载JavaScript(或类似requirejs)。

要使用TypeScript中的JavaScript,您需要声明您希望用于TypeScript使用的JavaScript的API(如AKR指出的那样)。

32

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

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

声明文件存储有关JavaScript变量,函数和对象的元数据,以便TypeScript编译器可以完成其工作。如果您的JavaScript文件碰巧是常用的库或框架,那么DefinitelyTyped绝对是您找到您需要的定义文件的地方。

如果您的JavaScript是您自己的工作或不太知名,您将不得不编写自己的类型声明文件。请参阅The TypeScript Handbook中写入.d.ts文件

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

让我知道你是否需要任何帮助!

+0

+1好TR:DR如何工作,一般而言,感谢DefinatelyTyped回购,似乎最好在决定一个库之前首先检查。 – 2015-03-13 10:58:10

+2

但是如何将.d.ts包含在.ts文件中? – 2015-12-22 04:13:19

+0

d.ts文件需要与.ts文件位于同一项目中 – Doug 2016-01-28 20:55:55