Вот один из способов рассмотреть его, и иметь работу по завершению/intellisense. Есть несколько вариантов, которые будут ближе к исходной реализации 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
экземпляр со свойствами, IntelliSense Безразлично не работает:
// this won't work well:
export function _(val:number) : Chained {
return new Chained(val);
}
_["seconds"] = (val:number) : number => {
return val/1000;
}