我想在打字稿文件中使用javascript函数。如何在typescript文件中引用包含该函数的javascript文件?
我试过
<reference path="../libs/myjsfile.js" />
这会在构建时出现错误:Cannot resolve referenced file: ../libs/myjsfile.js
答案 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指出的那样)。