Utility typy
INFO
Tato stránka vypisuje pouze několik běžně používaných utility typů, které pro své použití mohou vyžadovat vysvětlení. Pro úplný seznam exportovaných typů se podívejte do zdrojového kódu.
PropType<T>
Používá se k anotaci vlastnosti (prop) s pokročilejšími typy při použití runtime props deklarací.
Příklad
tsimport type { PropType } from 'vue' interface Book { title: string author: string year: number } export default { props: { book: { // poskytne konkrétnější typ k základnímu `Object` type: Object as PropType<Book>, required: true } } }
MaybeRef<T>
Alias pro T | Ref<T>
. Užitečné pro anotaci vstupních parametrů v Composables.
- Podporováno pouze od verze 3.3+.
MaybeRefOrGetter<T>
Alias pro T | Ref<T> | (() => T)
. Užitečné pro anotaci vstupních parametrů v Composables.
- Podporováno pouze od verze 3.3+.
ExtractPropTypes<T>
Extrahuje typy vlastností (props) z objektu s runtime props. Extrahované typy jsou interně orientované - tj. vyřešené vlastnosti přijaté komponentou. To znamená, že vlastnosti typu boolean a vlastnosti s výchozími hodnotami jsou vždy definovány, i když nejsou povinné.
Pro extrakci veřejně orientovaných vlastností, tj. vlastností, které může předat rodič, použijte ExtractPublicPropTypes
.
Příklad
tsconst propsOptions = { foo: String, bar: Boolean, baz: { type: Number, required: true }, qux: { type: Number, default: 1 } } as const type Props = ExtractPropTypes<typeof propsOptions> // { // foo?: string, // bar: boolean, // baz: number, // qux: number // }
ExtractPublicPropTypes<T>
Extrahuje typy vlastností (props) z objektu s runtime props. veřejně orientované - tj. vlastnost, které může předat rodič.
Příklad
tsconst propsOptions = { foo: String, bar: Boolean, baz: { type: Number, required: true }, qux: { type: Number, default: 1 } } as const type Props = ExtractPublicPropTypes<typeof propsOptions> // { // foo?: string, // bar?: boolean, // baz: number, // qux?: number // }
ComponentCustomProperties
Používá se k rozšíření typu instance komponenty pro podporu custom globálních vlastností.
Příklad
tsimport axios from 'axios' declare module 'vue' { interface ComponentCustomProperties { $http: typeof axios $translate: (key: string) => string } }
TIP
Rozšíření musí být umístěno v souboru modulu
.ts
nebo.d.ts
. Pro více informací se podívejte na rozšiřování globálních vlastností.
ComponentCustomOptions
Používá se k rozšíření typu vlastností komponenty pro podporu custom vlastností.
Příklad
tsimport { Route } from 'vue-router' declare module 'vue' { interface ComponentCustomOptions { beforeRouteEnter?(to: any, from: any, next: () => void): void } }
TIP
Rozšíření musí být umístěno v souboru modulu
.ts
nebo.d.ts
. Pro více informací se podívejte na rozšiřování globálních vlastností.Viz také: Rozšiřování globálních vlastností
ComponentCustomProps
Používá se k rozšíření povolených TSX vlastností (props) pro použití nedeklarovaných vlastností na prvcích TSX.
Příklad
tsdeclare module 'vue' { interface ComponentCustomProps { hello?: string } } export {}
tsx// nyní funguje i když hello není deklarovanou vlastností <MyComponent hello="world" />
TIP
Rozšíření musí být umístěno v souboru modulu
.ts
nebo.d.ts
. Pro více informací se podívejte na rozšiřování globálních vlastností.
CSSProperties
Používá se k rozšíření povolených hodnot u vazeb vlastností stylů.
Příklad
Povolí libovolnou custom CSS vlastnost
tsdeclare module 'vue' { interface CSSProperties { [key: `--${string}`]: string } }
tsx<div style={ { '--bg-color': 'blue' } }>
html<div :style="{ '--bg-color': 'blue' }"></div>
TIP
Rozšíření musí být umístěno v souboru modulu .ts
nebo .d.ts
. Pro více informací se podívejte na rozšiřování globálních vlastností.
Viz také
Podpora SFC <style>
tagů pro propojení hodnot CSS s dynamickým stavem komponenty pomocí CSS funkce v-bind
. To umožňuje custom vlastnosti bez rozšíření typů.