我有一个用JavaScript编写的应用程序,我想使用TypeScript作为新功能。我有一个用JavaScript定义的基类,例如。
// base.js
module.exports = function BaseClass () {
// ... ...
};
在我的TypeScript中,我需要像这样创建一个类。
// sub.ts
import Base from "./base.js";
class Sub extends Base {
// ... ...
}
但我发现sub.ts
说
Type "Base" is not a constructor function type.
我想知道为什么会这样?这是因为我的.d.ts
没有base.js
个文件吗?如果是这样,我如何为base.js
创建明确的文件以及我需要放置此文件的位置?
答案 0 :(得分:3)
这是因为我的base.js没有.d.ts文件吗?
是
如果是这样,我该如何为base.js创建明确的文件
只需base.d.ts
:
declare class Base {
}
我需要把这个文件放在哪里?
base.js
。
答案 1 :(得分:0)
基于@basarat的答案的完整示例:
// data.js
var data = {
"values": [
{
"value": "a",
},
{
"value": "b",
}
],
"year" : 2018
}
export { data }
export declare class data {
static values : any[];
static year : number
}
// app.ts
import { data } from './data.js';
// data.values.filter() // autocompletion for Array methods should appear in the IDE
// data.year.toFixed(1) // // autocompletion for Number methods should appear in the IDE
在Angular 6应用程序中使用以下代码进行了测试:TypeScript V2.9.2。