我有一个小组件,我想提供类似于此示例的属性类型
我正在使用带有 mostjs 流库的cyclejs。
这有效:
import { Sources } from '@cycle/run';
import { setup } from '@cycle/most-run';
import { div, input, span, makeDOMDriver, MainDOMSource } from '@cycle/dom';
import { of, Stream, startWith } from 'most';
function Checkbox(sources: Sources) {
const click$ = sources.DOM.select('.checkbox').events('click');
const toggleCheck$ = click$
.filter(ev => ev.target instanceof HTMLInputElement)
.map(ev => ev.target.checked)
const toggled$ = startWith(false, toggleCheck$)
const vdom$ = toggled$.map(toggled =>
div('.checkbox', [
input('.checkbox', {attrs: {type: 'checkbox', checked: toggled}}),
'Label Here'
])
);
return {
DOM: vdom$
}
}
const {sources, sinks, run} = setup(Checkbox, { DOM: makeDOMDriver('#mount')});
const dispose = run();
类型Sources
只是:
export declare type Sources = {
[name: string]: any;
}
我想为以下内容创建明确的类型CheckboxSources
:
import { DOMSource } from '@cycle/dom';
export type CheckboxSources = {
DOM: DOMSource,
props$: Stream<CheckboxProps>
}
但是DOMSource
使用Stream
来自xstream
--- 我需要在两个流库之间进行转换吗?我想most-run
会把这种转换抽象掉吗?
我可以使用any
DOM 的类型,但更喜欢显式类型。