jul*_*n_c 25 typescript typescript-typings
我有一个名为RiveScript的npm模块,通常(在Javascript中)以这种方式实例化:
var RiveScript = require('rivescript');
var rivescript = new RiveScript();
Run Code Online (Sandbox Code Playgroud)
我正在尝试为模块编写一个声明文件,但是我在第一步陷入困境.这是我到目前为止所写的内容:
declare module "rivescript" {
interface RivescriptOptions {
utf8?: boolean;
}
class RiveScript {
constructor(options?: RivescriptOptions);
}
export default RiveScript;
}
Run Code Online (Sandbox Code Playgroud)
然后我想在Typescript中我将以这种方式使用模块(默认导入):
import RiveScript from 'rivescript';
let rivescript = new RiveScript();
Run Code Online (Sandbox Code Playgroud)
但是,tsc
生成它,因为它引用了一个default()
函数,它是无效的:
const rivescript_1 = require('rivescript');
let rivescript = new rivescript_1.default();
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Pel*_*obs 36
你真的很亲密 而不是使用export default
,你应该使用export =
.
自定义分型/ rivescript.d.ts
declare module 'rivescript' {
class RiveScript {
constructor()
}
export = RiveScript
}
Run Code Online (Sandbox Code Playgroud)
app.js
import RiveScript = require('rivescript');
let rivescript = new RiveScript();
Run Code Online (Sandbox Code Playgroud)
有关如何编写声明文件的更多信息,您应该查看Typescript手册.例如.他们有一个"将模块作为一个类导出"的模板.
Pau*_*erg 17
如果您正在寻找适用于默认导出函数的解决方案:
declare module "my-module" {
function myFunction(foo: number): string;
export default myFunction;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14435 次 |
最近记录: |