And*_*rew 8 javascript ecmascript-5 typescript
以下代码将在ES5中创建工厂函数:
function MyClass(val) {
if (!(this instanceof MyClass)) {
return new MyClass(val);
}
this.val = val;
}
Run Code Online (Sandbox Code Playgroud)
可以使用或不使用new关键字调用此函数:
var a = new MyClass(5);
var b = MyClass(5);
Run Code Online (Sandbox Code Playgroud)
这在Typescript中运行良好,但我无法弄清楚如何使用描述两种行为的合并来创建声明文件.有没有办法做到这一点?
interface MyClass {
val: {};
}
interface MyClassConstructor {
(val: {}): MyClass;
new (val: {}): MyClass;
}
declare const MyClass: MyClassConstructor;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
351 次 |
| 最近记录: |