type TupleUnion<U extends string, R extends string[] = []> = {
[S in U]: Exclude<U, S> extends never ? [...R, S] : TupleUnion<Exclude<U, S>, [...R, S]>;
}[U] & string[];
interface Interface {
foo: boolean;
bar: string;
baz: object
}
type Keys = TupleUnion<keyof Interface>;
let keys: Keys;
keys = ['foo', 'bar', 'baz']; // OK все ключи указаны
keys = ['foo']; // NOT OK указаны не все ключи
keys = ['foo', 'bar', 'another bar']; // NOT OK один из ключей не совпадает
store.dispatch(init()); // тут
const root = (
<Provider store={store}>
<BrowserRouter>
<App />
</BrowserRouter>
</Provider>
);
ReactDom.render(root, document.getElementById('root'));
// componentA.jsx
class ComponentA extends React.PureComponent {
state = {
mounted: false
}
removeB = () => {
this.setState({ mounted: !this.state.mounted })
}
render() {
let { mounted } = this.state
return <div>
{
(mounted) ? <ComponentB /> : <ComponentC onClick={this.removeB} />
}
</div>
}
}
// componentB.jsx
class ComponentB extends React.PureComponent {
render() {
return <div>ComponentB</div>
}
}
// componentC.jsx
class ComponentC extends React.PureComponent {
render() {
return <button onClick={this.props.onClick}>ComponentC click me</button>
}
}
Использовать один конфиг с двумя entrypoint?
Возможно ли будет прикрутить hot-reload?
Как настроить webpack для expressjs backend и frontend?
<datatable [items]="accounts">
<template #aa1 let-item="item">
Custom template for: <b>{{item.Name}}</b>
<button (click)="testTemplate(item)">From Template</button>
</template>
<template #aa2 let-item="item">
Custom template for: <i>{{item.Name}}</i>
<button (click)="testTemplate(item)">From Template</button>
</template>
</datatable>
@ContentChild('aa1') template1: TemplateRef<any>;
@ContentChild('aa2') template2: TemplateRef<any>;
...
<tr *ngFor="let item of items">
<td>
<template
[ngTemplateOutlet]="template1"
[ngOutletContext]="{item: item}">
</template>
</td>
<td>
<template
[ngTemplateOutlet]="template2"
[ngOutletContext]="{item: item}">
</template>
</td>
</tr>
...
#!/bin/sh
echo "Начинаем..."
while (true)
do
echo "Ваш скрипт";
sleep 5; # пауза 5 секунд
done;