Расширить интерфейс, определенный в файле .d.ts
В моем проекте TypeScript я используюDefinitelyTyped определения для внешних JS-зависимостей.
Иногда может случиться, что эти определения устарели. Может также случиться, что некоторые библиотеки могут добавлять новые методы во время выполнения, напримерэкспресс-валидатор в котором вы можете определить пользовательские функции валидатора.
Поэтому я хотел бы расширить эти.d.ts
определения, добавляющие новые методы и / или свойства.
Так что, если у меня есть определенное определение вexpress-validator.d.ts
:
declare module ExpressValidator {
export interface Validator {
is(): Validator;
not(): Validator;
isEmail(): Validator;
...
}
}
как я могу продлитьValidator
интерфейс внутри, например, моего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??