Typy narzędzi
INFO
Ta strona zawiera tylko kilka powszechnie używanych typów narzędzi, których użycie może wymagać wyjaśnienia. Aby uzyskać pełną listę eksportowanych typów, zapoznaj się z kodem źródłowym.
PropType<T>
Służy do adnotacji właściwości przy użyciu bardziej zaawansowanych typów podczas korzystania z deklaracji właściwości w czasie wykonywania.
Przykład
tsimport type { PropType } from 'vue' interface Book { title: string author: string year: number } export default { props: { book: { // podaj bardziej szczegółowy typ dla `Obiektu` type: Object as PropType<Book>, required: true } } }
Zobacz także Przewodnik - Typing Component Props
MaybeRef<T>
Alias dla T | Ref<T>
. Przydatny do adnotowania argumentów Composables.
- Obsługiwane tylko w wersji 3.3+.
MaybeRefOrGetter<T>
Alias dla T | Ref<T> | (() => T)
. Przydatny do adnotowania argumentów Composables.
- Obsługiwane tylko w wersji 3.3+.
ExtractPropTypes<T>
Wyodrębnij typy rekwizytów z obiektu opcji rekwizytów środowiska wykonawczego. Wyodrębnione typy są skierowane do wewnątrz — tj. rozwiązane rekwizyty otrzymane przez komponent. Oznacza to, że rekwizyty typu boolowskiego i rekwizyty z wartościami domyślnymi są zawsze zdefiniowane, nawet jeśli nie są wymagane.
Aby wyodrębnić rekwizyty skierowane do publiczności, tj. rekwizyty, które rodzic może przekazać, użyj ExtractPublicPropTypes
.
Przykład
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>
Wyodrębnij typy rekwizytów z obiektu opcji rekwizytów środowiska wykonawczego. Wyodrębnione typy są publiczne - tj. rekwizyty, które rodzic może przekazać.
Obsługiwane tylko w wersji 3.3+.
Przykład
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
Służy do rozszerzenia typu instancji komponentu o obsługę niestandardowych właściwości globalnych.
Przykład
tsimport axios from 'axios' declare module 'vue' { interface ComponentCustomProperties { $http: typeof axios $translate: (key: string) => string } }
TIP
Augmentacje muszą być umieszczone w pliku modułu
.ts
lub.d.ts
. Więcej szczegółów można znaleźć w Umieszczanie rozszerzeń typu.Zobacz także Przewodnik - Rozszerzanie właściwości globalnych
ComponentCustomOptions
Służy do rozszerzenia typu opcji komponentu o obsługę opcji niestandardowych.
Przykład
tsimport { Route } from 'vue-router' declare module 'vue' { interface ComponentCustomOptions { beforeRouteEnter?(to: any, from: any, next: () => void): void } }
TIP
Augmentacje muszą być umieszczone w pliku modułu
.ts
lub.d.ts
. Więcej szczegółów można znaleźć w Umieszczanie rozszerzeń typu.Zobacz także Przewodnik - Rozszerzanie opcji niestandardowych
ComponentCustomProps
Służy do rozszerzenia dozwolonych rekwizytów TSX w celu użycia niezadeklarowanych rekwizytów w elementach TSX.
Przykład
tsdeclare module 'vue' { interface ComponentCustomProps { hello?: string } } export {}
tsx// teraz działa nawet jeśli hello nie jest zadeklarowaną właściwością <MyComponent hello="world" />
TIP
Augmentacje muszą być umieszczone w pliku modułu
.ts
lub.d.ts
. Więcej szczegółów można znaleźć w Umieszczanie rozszerzeń typu.
CSSProperties
Służy do rozszerzania dozwolonych wartości w powiązaniach właściwości stylu.
Przykład
Zezwalaj na dowolną niestandardową właściwość CSS
tsdeclare module 'vue' { interface CSSProperties { [key: `--${string}`]: string } }
tsx<div style={ { '--bg-color': 'blue' } }>
html<div :style="{ '--bg-color': 'blue' }"></div>
TIP
Augmentacje muszą być umieszczone w pliku modułu .ts
lub .d.ts
. Więcej szczegółów można znaleźć w Umieszczanie rozszerzeń typu.
Zobacz także
Tagi SFC <style>
obsługują łączenie wartości CSS z dynamicznym stanem komponentu za pomocą funkcji CSS v-bind
. Umożliwia to niestandardowe właściwości bez rozszerzania typu.