0
我寫的打字稿圖書館,必須保持一些API打字稿模塊功能
_(1).seconds()
的事情是,_是一個模塊,而在以前的實現均是如此
module.exports = valueFunction;
module.exports.seconds = seconds;
是否可以在打字稿中實現相同的功能?
我寫的打字稿圖書館,必須保持一些API打字稿模塊功能
_(1).seconds()
的事情是,_是一個模塊,而在以前的實現均是如此
module.exports = valueFunction;
module.exports.seconds = seconds;
是否可以在打字稿中實現相同的功能?
這裏有一種方法可以考慮分解它,並完成代碼完成/智能感知工作。有幾個選擇可能會更接近原始的JavaScript實現,但是,讓代碼完成起作用可能有點困難。
導出主要功能_
,並返回一個名爲Chained
的導出類。它在class
中,其中掛起_
返回值的函數將存在。
在實現文件(sample.ts
):
export class Chained {
constructor(private val: number) {
}
seconds(): number {
return this.val/1000;
}
}
export function _(val: number): Chained {
return new Chained(val);
}
然後在使用中:
/// <reference path="sample.ts" />
import sample = require('./sample');
// create a simple alias for the exported _ function:
import _ = sample._;
var val = _(5000).seconds();
console.log(val);
輸出將是5
如seconds
由1000
將原始數。
如果您需要的功能可用,如:
_.seconds
還有:
_().seconds()
您的選擇變得同時打字稿支持延伸的Function
實例與性能,智能感知沒有按較爲有限't work:
// this won't work well:
export function _(val:number) : Chained {
return new Chained(val);
}
_["seconds"] = (val:number) : number => {
return val/1000;
}