所以我有一个第三方库,其全局函数可用,如jQuery:$ .functionName()但没有定义文件。所以我想写自己的文件,但我不能使引用/导入工作。
如果我在内联编写声明,它可以正常工作:
declare let a:string;
myClass {
constructor() {
console.log(a);
}
}
但是,如果我在另一个文件中声明它,我无法使其工作:
myDeclaration.d.ts
export declare let a:string;
myClass.ts
/// <reference path="myDeclaration.d.ts" />
myClass {
constructor() {
console.log(a);
}
}
我也试过import * as a from "myDeclaration"
。它总是说:Cannot find name 'a'
答案 0 :(得分:0)
您不应将导出与ambient
声明一起使用。
只需删除你的.d.ts导出,如下所示:
declare let a:string
通常您甚至可以删除<reference path="">
,因为整个项目都可以使用声明。
在为导入的模块编写定义时,应该使用export declare
,例如JS npm库,并且当对象全局可用而没有任何导入时使用ambient
定义(jQuery导入为例如<script>
。