本文整理汇总了TypeScript中camelot-unchained.RUNTIME_ASSERT函数的典型用法代码示例。如果您正苦于以下问题:TypeScript RUNTIME_ASSERT函数的具体用法?TypeScript RUNTIME_ASSERT怎么用?TypeScript RUNTIME_ASSERT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了RUNTIME_ASSERT函数的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: RUNTIME_ASSERT
actionDefs[ON_RESIZE] = (s, a) => {
// need to scan wiget positions, and check if they still fit in the
// new window size
RUNTIME_ASSERT(a.screen.width >= 640 && a.screen.height >= 480, 'ignoring resize event for small window');
let widgets: Dictionary<Position> = {};
for (let key in s.widgets) {
const position = s.widgets[key] as Position;
widgets[key] = forceOnScreen(position, screen);
}
return merge(s, {
widgets: widgets,
lastScreenSize: screen
});
}
示例2: RUNTIME_ASSERT
reducer: (s, a) => {
RUNTIME_ASSERT(a.screen.width >= 640 && a.screen.height >= 480, 'ignoring resize event for small window');
const onScreenWidgets = Map<string, Widget<any>>();
s.widgets.forEach((value, key) => {
onScreenWidgets.set(key, {
position: forceOnScreen(value.position, a.screen),
dragOptions: value.dragOptions,
component: value.component,
props: value.props
});
});
return {
widgets: onScreenWidgets
};
}
示例3: reducer
export default function reducer(state: LayoutState = getInitialState(),
action: LayoutAction = {type: null}): LayoutState {
switch(action.type) {
case LOCK_HUD:
return Object.assign({}, state, {
locked: true
});
case UNLOCK_HUD:
return Object.assign({}, state, {
locked: false
});
}
let widgets: any;
let outState: LayoutState = state;
let screen: Size;
let anchored: AnchoredPosition;
let position: Position;
switch(action.type) {
case INITIALIZE:
{
outState = Object.assign({}, state, {
lastScreenSize: action.size
});
break;
}
case RESET_HUD:
{
outState = Object.assign({}, loadState(clone(initialState())));
break;
}
case SET_POSITION:
widgets = state.widgets;
widgets[action.widget] = action.position;
outState = Object.assign({}, state, {
widgets: widgets
});
break;
case SAVE_POSITION:
widgets = state.widgets;
screen = { width: window.innerWidth, height: window.innerHeight };
position = anchorPosition(action.position, screen);
Object.assign(widgets[action.widget], position);
if (position.scale <= minScale) widgets[action.widget].scale = minScale;
outState = Object.assign({}, state, {
widgets: widgets
});
break;
case ON_RESIZE:
// need to scan wiget positions, and check if they still fit in the
// new window size
screen = { width: window.innerWidth, height: window.innerHeight };
RUNTIME_ASSERT(screen.width >= 640 && screen.height >= 480, 'ignoring resize event for small window');
widgets = {};
for (let key in state.widgets) {
position = state.widgets[key] as Position;
widgets[key] = forceOnScreen(adjustPosition(position, state.lastScreenSize, screen), screen);
}
outState = Object.assign({}, state, {
widgets: widgets,
lastScreenSize: screen
})
return outState; // don't need to save state
}
// save to local storage
saveState(outState);
return outState;
}