diff --git a/packages/compiler-dom/src/decodeHtml.ts b/packages/compiler-dom/src/decodeHtml.ts
index 3d9823c6303..b28592d95ce 100644
--- a/packages/compiler-dom/src/decodeHtml.ts
+++ b/packages/compiler-dom/src/decodeHtml.ts
@@ -102,7 +102,7 @@ export const decodeHtml: ParserOptions['decodeEntities'] = (
}
// https://html.spec.whatwg.org/multipage/parsing.html#numeric-character-reference-end-state
-const CCR_REPLACEMENTS: { [key: number]: number | undefined } = {
+const CCR_REPLACEMENTS: Record = {
0x80: 0x20ac,
0x82: 0x201a,
0x83: 0x0192,
diff --git a/packages/runtime-core/src/component.ts b/packages/runtime-core/src/component.ts
index c621d0f161f..621d8ae6b47 100644
--- a/packages/runtime-core/src/component.ts
+++ b/packages/runtime-core/src/component.ts
@@ -51,7 +51,7 @@ import {
import { startMeasure, endMeasure } from './profiling'
import { componentAdded } from './devtools'
-export type Data = { [key: string]: unknown }
+export type Data = Record
// Note: can't mark this whole interface internal because some public interfaces
// extend it.
diff --git a/packages/runtime-core/src/componentProps.ts b/packages/runtime-core/src/componentProps.ts
index e0814c74b2f..5e4c2c05411 100644
--- a/packages/runtime-core/src/componentProps.ts
+++ b/packages/runtime-core/src/componentProps.ts
@@ -80,7 +80,7 @@ type InferPropType = T extends null
: T extends { type: null | true }
? any // As TS issue https://github.com/Microsoft/TypeScript/issues/14829 // somehow `ObjectConstructor` when inferred from { (): T } becomes `any` // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`
: T extends ObjectConstructor | { type: ObjectConstructor }
- ? { [key: string]: any }
+ ? Record
: T extends BooleanConstructor | { type: BooleanConstructor }
? boolean
: T extends Prop ? V : T
diff --git a/packages/runtime-core/src/devtools.ts b/packages/runtime-core/src/devtools.ts
index 6e62ee76eab..24fb23a31c9 100644
--- a/packages/runtime-core/src/devtools.ts
+++ b/packages/runtime-core/src/devtools.ts
@@ -6,7 +6,7 @@ export interface AppRecord {
id: number
app: App
version: string
- types: { [key: string]: string | Symbol }
+ types: Record
}
enum DevtoolsHooks {
diff --git a/packages/runtime-core/src/vnode.ts b/packages/runtime-core/src/vnode.ts
index 30b5c240ad4..f477933ab83 100644
--- a/packages/runtime-core/src/vnode.ts
+++ b/packages/runtime-core/src/vnode.ts
@@ -214,7 +214,7 @@ export function setBlockTracking(value: number) {
*/
export function createBlock(
type: VNodeTypes | ClassComponent,
- props?: { [key: string]: any } | null,
+ props?: Record | null,
children?: any,
patchFlag?: number,
dynamicProps?: string[]