为我自己的 JavaScript 文件写 .d.ts fie
Write .d.ts fie for my own JavaScript file
我有一个用 JavaScript 编写的应用程序,我想将 TypeScript 用于新功能。例如,我在 JavaScript 中定义了一个基数 class。
// base.js
module.exports = function BaseClass () {
// ... ...
};
在我的 TypeScript 中,我需要像这样从中创建一个 class。
// sub.ts
import Base from "./base.js";
class Sub extends Base {
// ... ...
}
但是我发现sub.ts
说的有误
Type "Base" is not a constructor function type.
我想知道为什么会这样?这是因为我的 base.js
没有 .d.ts
文件吗?如果是这样,我如何为 base.js
创建 definitely 文件以及我需要把这个文件放在哪里?
Is this because there's no .d.ts file for my base.js?
年。
If so, how can I create the definitely file for base.js
简化base.d.ts
:
declare class Base {
}
and where I need to put this file?
在 base.js
旁边。
一个完整的例子,基于@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。
我有一个用 JavaScript 编写的应用程序,我想将 TypeScript 用于新功能。例如,我在 JavaScript 中定义了一个基数 class。
// base.js
module.exports = function BaseClass () {
// ... ...
};
在我的 TypeScript 中,我需要像这样从中创建一个 class。
// sub.ts
import Base from "./base.js";
class Sub extends Base {
// ... ...
}
但是我发现sub.ts
说的有误
Type "Base" is not a constructor function type.
我想知道为什么会这样?这是因为我的 base.js
没有 .d.ts
文件吗?如果是这样,我如何为 base.js
创建 definitely 文件以及我需要把这个文件放在哪里?
Is this because there's no .d.ts file for my base.js?
年。
If so, how can I create the definitely file for base.js
简化base.d.ts
:
declare class Base {
}
and where I need to put this file?
在 base.js
旁边。
一个完整的例子,基于@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。