我有一个小组件,我想提供类似于这个例子的属性类型
我在用cyclejs和mostjs流库。
这样做是可行的:
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使用来自xstream的Stream --我需要在两个流库之间进行转换吗?我以为most-run会把这种转换抽象化?
我可以在DOM中使用any类型,但更喜欢显式类型。
发布于 2017-05-01 19:39:47
对于循环DOM的most.js,需要分别获取类型:
import {DOMSource} from '@cycle/dom/most-typings.d.ts'我们试图支持所有配置为零的流库的类型,但是虽然TypeScript不能支持泛型(例如S<T>,其中S将是来自xstream或大多数的流类型,而T可能是字符串),但不幸的是,这个特性似乎不可能实现。
https://stackoverflow.com/questions/43722248
复制相似问题