我有A.js
一个看起来像这样的文件(非TypeScript):
module({
}, function (imports) {
return {
foo: function () {
// ...
}
};
});
它的格式类似于AMD,实现方式类似于requirejs,只是格式略有不同。
然后文件B.ts
(TypeScript)将其导入:
import A from '../old-code/A'
console.log(A)
这给出了类似的错误
ERROR in ./src/app.ts
(9,17): error TS2306: File '/path/to/B.js' is not a module.
有什么办法可以解决此问题,以便TypeScript知道如何导入它?
我是TypeScript的新手...我感觉有一种方法可以为它定义类型或其他类型?
编辑:我读了有关声明文件,但没有说明如何导入不是TypeScript的文件。
我希望有一种方法可以定义文件的导入和导出。如果没有,那将是一件好事。
它的格式类似于AMD,实现方式类似于requirejs,只是格式略有不同。
据我所知,在TypeScript中导入非标准模块需要修改编译器,这对于最终用户而言是完全不可能的。
但是,您仍然可以declare function require(mod: string): any
在模块系统中进行让步或类似的让步。
然后,您可以编写require('A')
以在运行时导入模块。代价是在编译时不进行类型检查。
如果您不使用allowJS
标志。您还可以编写一个声明文件,例如:
Adts
declare var a: {
test: number
}
export = a
请注意命名约定,如果有代码A.js
,A.d.ts
编译器会自动搜索同伴,以查找import * as A from './A'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句