Просмотр исходного кода

chore: comments regarding Readonly usage

Evan You 6 лет назад
Родитель
Сommit
abdaf10d88

+ 2 - 0
packages/runtime-core/src/apiCreateComponent.ts

@@ -68,6 +68,8 @@ export function createComponent<
 // overload 4: object format with object props declaration
 // see `ExtractPropTypes` in ./componentProps.ts
 export function createComponent<
+  // the Readonly constraint allows TS to treat the type of { required: true }
+  // as constant instead of boolean.
   PropsOptions extends Readonly<ComponentPropsOptions>,
   RawBindings,
   D,

+ 3 - 0
packages/runtime-core/src/apiWatch.ts

@@ -68,6 +68,9 @@ export function watch<T>(
 ): StopHandle
 
 // overload #3: array of multiple sources + cb
+// Readonly constraint helps the callback to correctly infer value types based
+// on position in the source array. Otherwise the values will get a union type
+// of all possible value types.
 export function watch<T extends Readonly<WatcherSource<unknown>[]>>(
   sources: T,
   cb: WatchHandler<MapSources<T>>,