瀏覽代碼

types: improve typing (#309)

xiaoboost 6 年之前
父節點
當前提交
32499b16e7

+ 1 - 1
packages/compiler-core/__tests__/testUtils.ts

@@ -17,7 +17,7 @@ const bracketsRE = /^\[|\]$/g
 // e.g.
 // - createObjectMatcher({ 'foo': '[bar]' }) matches { foo: bar }
 // - createObjectMatcher({ '[foo]': 'bar' }) matches { [foo]: "bar" }
-export function createObjectMatcher(obj: any) {
+export function createObjectMatcher(obj: Record<string, any>) {
   return {
     type: NodeTypes.JS_OBJECT_EXPRESSION,
     properties: Object.keys(obj).map(key => ({

+ 1 - 1
packages/runtime-dom/jsx.d.ts

@@ -23,7 +23,7 @@
 
 interface HTMLAttributes {
   class?: any
-  style?: string | { [key: string]: string | number }
+  style?: string | Partial<CSSStyleDeclaration>
   accesskey?: string
   contenteditable?: boolean
   contextmenu?: string

+ 5 - 3
packages/runtime-dom/src/modules/style.ts

@@ -1,14 +1,16 @@
 import { isString } from '@vue/shared'
 
-export function patchStyle(el: any, prev: any, next: any) {
-  const { style } = el
+type Style = string | Partial<CSSStyleDeclaration> | null
+
+export function patchStyle(el: Element, prev: Style, next: Style) {
+  const style = (el as HTMLElement).style
   if (!next) {
     el.removeAttribute('style')
   } else if (isString(next)) {
     style.cssText = next
   } else {
     for (const key in next) {
-      style[key] = next[key]
+      style[key] = next[key] as string
     }
     if (prev && !isString(prev)) {
       for (const key in prev) {

+ 2 - 2
packages/template-explorer/src/index.ts

@@ -213,12 +213,12 @@ function debounce<T extends (...args: any[]) => any>(
   fn: T,
   delay: number = 300
 ): T {
-  let prevTimer: NodeJS.Timeout | null = null
+  let prevTimer: number | null = null
   return ((...args: any[]) => {
     if (prevTimer) {
       clearTimeout(prevTimer)
     }
-    prevTimer = setTimeout(() => {
+    prevTimer = window.setTimeout(() => {
       fn(...args)
       prevTimer = null
     }, delay)