From ffc166cdb4beae1c800ce2132821baea1c547d6f Mon Sep 17 00:00:00 2001 From: "Shahar Or (mightyiam)" Date: Tue, 17 Mar 2020 22:24:14 +0700 Subject: [PATCH] style: @typescript-eslint/consistent-type-assertions Fixes #564. Fixes #565. --- .eslintrc.js | 1 - src/htmldomapi.ts | 8 ++++---- src/modules/attributes.ts | 2 +- src/modules/class.ts | 2 +- src/modules/dataset.ts | 2 +- src/modules/eventlisteners.ts | 4 ++-- src/modules/hero.ts | 2 +- src/modules/module.ts | 4 ++-- src/modules/props.ts | 2 +- src/modules/style.ts | 8 ++++---- src/snabbdom.ts | 15 +++++++++++---- 11 files changed, 28 insertions(+), 22 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index c372a7d..e4df547 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -8,7 +8,6 @@ module.exports = { 'import/newline-after-import': 'error', 'max-statements-per-line': 'error', '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/consistent-type-assertions': 'off', '@typescript-eslint/consistent-type-definitions': 'off', '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/no-unnecessary-type-assertion': 'off', diff --git a/src/htmldomapi.ts b/src/htmldomapi.ts index 9ebb2cd..cd7c3d9 100644 --- a/src/htmldomapi.ts +++ b/src/htmldomapi.ts @@ -6,8 +6,8 @@ export interface DOMAPI { insertBefore: (parentNode: Node, newNode: Node, referenceNode: Node | null) => void removeChild: (node: Node, child: Node) => void appendChild: (node: Node, child: Node) => void - parentNode: (node: Node) => Node - nextSibling: (node: Node) => Node + parentNode: (node: Node) => Node | null + nextSibling: (node: Node) => Node | null tagName: (elm: Element) => string setTextContent: (node: Node, text: string | null) => void getTextContent: (node: Node) => string | null @@ -76,7 +76,7 @@ function isComment (node: Node): node is Comment { return node.nodeType === 8; } -export const htmlDomApi = { +export const htmlDomApi: DOMAPI = { createElement, createElementNS, createTextNode, @@ -92,6 +92,6 @@ export const htmlDomApi = { isElement, isText, isComment, -} as DOMAPI; +}; export default htmlDomApi; diff --git a/src/modules/attributes.ts b/src/modules/attributes.ts index 4b7f4aa..0d5161a 100755 --- a/src/modules/attributes.ts +++ b/src/modules/attributes.ts @@ -61,5 +61,5 @@ function updateAttrs (oldVnode: VNode, vnode: VNode): void { } } -export const attributesModule = { create: updateAttrs, update: updateAttrs } as Module; +export const attributesModule: Module = { create: updateAttrs, update: updateAttrs }; export default attributesModule; diff --git a/src/modules/class.ts b/src/modules/class.ts index 85aff90..101da3f 100755 --- a/src/modules/class.ts +++ b/src/modules/class.ts @@ -28,5 +28,5 @@ function updateClass (oldVnode: VNode, vnode: VNode): void { } } -export const classModule = { create: updateClass, update: updateClass } as Module; +export const classModule: Module = { create: updateClass, update: updateClass }; export default classModule; diff --git a/src/modules/dataset.ts b/src/modules/dataset.ts index 39d8789..158adeb 100755 --- a/src/modules/dataset.ts +++ b/src/modules/dataset.ts @@ -39,5 +39,5 @@ function updateDataset (oldVnode: VNode, vnode: VNode): void { } } -export const datasetModule = { create: updateDataset, update: updateDataset } as Module; +export const datasetModule: Module = { create: updateDataset, update: updateDataset }; export default datasetModule; diff --git a/src/modules/eventlisteners.ts b/src/modules/eventlisteners.ts index 06bad5e..8dbc2c5 100755 --- a/src/modules/eventlisteners.ts +++ b/src/modules/eventlisteners.ts @@ -103,9 +103,9 @@ function updateEventListeners (oldVnode: VNode, vnode?: VNode): void { } } -export const eventListenersModule = { +export const eventListenersModule: Module = { create: updateEventListeners, update: updateEventListeners, destroy: updateEventListeners -} as Module; +}; export default eventListenersModule; diff --git a/src/modules/hero.ts b/src/modules/hero.ts index be72ea0..b4a487c 100755 --- a/src/modules/hero.ts +++ b/src/modules/hero.ts @@ -179,5 +179,5 @@ function post () { removed = created = undefined; } -export const heroModule = { pre, create, destroy, post } as Module; +export const heroModule: Module = { pre, create, destroy, post }; export default heroModule; diff --git a/src/modules/module.ts b/src/modules/module.ts index 33828c8..c356c92 100644 --- a/src/modules/module.ts +++ b/src/modules/module.ts @@ -1,10 +1,10 @@ import { PreHook, CreateHook, UpdateHook, DestroyHook, RemoveHook, PostHook } from '../hooks'; -export interface Module { +export type Module = Partial<{ pre: PreHook create: CreateHook update: UpdateHook destroy: DestroyHook remove: RemoveHook post: PostHook -} +}>; diff --git a/src/modules/props.ts b/src/modules/props.ts index 819993a..e4d370a 100755 --- a/src/modules/props.ts +++ b/src/modules/props.ts @@ -30,5 +30,5 @@ function updateProps (oldVnode: VNode, vnode: VNode): void { } } -export const propsModule = { create: updateProps, update: updateProps } as Module; +export const propsModule: Module = { create: updateProps, update: updateProps }; export default propsModule; diff --git a/src/modules/style.ts b/src/modules/style.ts index 0ae893c..3645c9d 100755 --- a/src/modules/style.ts +++ b/src/modules/style.ts @@ -30,8 +30,8 @@ function updateStyle (oldVnode: VNode, vnode: VNode): void { if (!oldStyle && !style) return; if (oldStyle === style) return; - oldStyle = oldStyle || {} as VNodeStyle; - style = style || {} as VNodeStyle; + oldStyle = oldStyle || {}; + style = style || {}; var oldHasDel = 'delayed' in oldStyle; for (name in oldStyle) { @@ -110,11 +110,11 @@ function forceReflow () { reflowForced = false; } -export const styleModule = { +export const styleModule: Module = { pre: forceReflow, create: updateStyle, update: updateStyle, destroy: applyDestroyStyle, remove: applyRemoveStyle -} as Module; +}; export default styleModule; diff --git a/src/snabbdom.ts b/src/snabbdom.ts index 4bd4b7c..66f2924 100644 --- a/src/snabbdom.ts +++ b/src/snabbdom.ts @@ -30,7 +30,7 @@ type ArraysOf = { [K in keyof T]: Array; }; -type ModuleHooks = ArraysOf; +type ModuleHooks = ArraysOf>; function createKeyToOldIdx (children: VNode[], beginIdx: number, endIdx: number): KeyToIndexMap { const map: KeyToIndexMap = {}; @@ -51,7 +51,14 @@ export { thunk } from './thunk'; export function init (modules: Array>, domApi?: DOMAPI) { let i: number; let j: number; - const cbs = ({} as ModuleHooks); + const cbs: ModuleHooks = { + create: [], + update: [], + remove: [], + destroy: [], + pre: [], + post: [] + }; const api: DOMAPI = domApi !== undefined ? domApi : htmlDomApi; @@ -74,7 +81,7 @@ export function init (modules: Array>, domApi?: DOMAPI) { function createRmCb (childElm: Node, listeners: number) { return function rmCb () { if (--listeners === 0) { - const parent = api.parentNode(childElm); + const parent = api.parentNode(childElm) as Node; api.removeChild(parent, childElm); } }; @@ -310,7 +317,7 @@ export function init (modules: Array>, domApi?: DOMAPI) { patchVnode(oldVnode, vnode, insertedVnodeQueue); } else { elm = oldVnode.elm!; - parent = api.parentNode(elm); + parent = api.parentNode(elm) as Node; createElm(vnode, insertedVnodeQueue);