types(Loading): use tsx

This commit is contained in:
chenjiahan 2020-09-19 23:27:03 +08:00
parent fe7e2faf6c
commit 71d014d691
2 changed files with 7 additions and 5 deletions

View File

@ -7,7 +7,7 @@ import { useRoute, routeProps } from '../composition/use-route';
// Components
import Icon from '../icon';
import Loading from '../loading';
import Loading, { LoadingType } from '../loading';
const [createComponent, bem] = createNamespace('button');
@ -35,7 +35,7 @@ export default createComponent({
disabled: Boolean,
iconPrefix: String,
loadingText: String,
loadingType: String,
loadingType: String as PropType<LoadingType>,
tag: {
type: String as PropType<keyof HTMLElementTagNameMap>,
default: 'button',

View File

@ -1,9 +1,9 @@
import { computed } from 'vue';
import { computed, PropType } from 'vue';
import { createNamespace, addUnit, getSizeStyle } from '../utils';
const [createComponent, bem] = createNamespace('loading');
const SpinIcon = [];
const SpinIcon: JSX.Element[] = [];
for (let i = 0; i < 12; i++) {
SpinIcon.push(<i />);
}
@ -14,6 +14,8 @@ const CircularIcon = (
</svg>
);
export type LoadingType = 'circular' | 'spinner';
export default createComponent({
props: {
size: [Number, String],
@ -21,7 +23,7 @@ export default createComponent({
vertical: Boolean,
textSize: [Number, String],
type: {
type: String,
type: String as PropType<LoadingType>,
default: 'circular',
},
},