В моем проекте TypeScript я использую DefinitelyTyped определения для внешних js-зависимостей.
Иногда бывает так, что эти определения устарели. Это может случиться и с некоторыми библиотеками, которые могут добавлять новые методы во время выполнения, например express-validator, в которых вы можете определить пользовательские функции проверки достоверности.
Поэтому я хотел бы расширить те определения .d.ts
, добавляющие новые методы и/или свойства.
Итак, если у меня есть определенная определенность в express-validator.d.ts
:
declare module ExpressValidator {
export interface Validator {
is(): Validator;
not(): Validator;
isEmail(): Validator;
...
}
}
как я могу расширить интерфейс Validator
внутри, например, my application.ts
?
///<reference path='../typings/tsd.d.ts' />
import expressValidator = require('express-validator');
export var app = express();
app.use(expressValidator({
customValidators: {
isArray: function(value) {
return Array.isArray(value);
}
}
}));
// How to extend Validator interface adding isArray() method??