Я хотел бы постепенно добавлять объявления для внешней библиотеки. Можно ли написать декларацию, которая описывает только определенные свойства объекта/интерфейса, а оставшиеся свойства опущены из декларации и, таким образом, не отмечены?Есть ли что-то вроде неполных (частичных) деклараций для Flow?
Например: Может следующий объект
const a = {foo: 8, bar: 9}
есть декларация, описывающая только одно свойство?
declare var a: any|{foo: number} // doesn't actually work
Предполагаемое поведение заключается в том, что если свойство найдено в объявлении, тогда тип принудительно применяется. Тип всех не упомянутых свойств считается any
.
Машинопись решает эту проблему с помощью дополнительного выражения свойств:
interface Iface {
foo: number;
[propName: string]: any;
}
'{Foo: число} & Object' может быть? – loganfsmyth
'{foo: number, [key: string]: any}' должен работать – gcanti