opentiny / tiny-vue

TinyVue is an enterprise-class UI component library of OpenTiny community, support both Vue.js 2 and Vue.js 3, as well as PC and mobile.
https://opentiny.design/tiny-vue
MIT License
1.58k stars 254 forks source link

✨ [Feature]: Hope to add the TypeScript type declaration of components #370

Closed kagol closed 1 month ago

kagol commented 1 year ago

What problem does this feature solve

Adding type declaration to components can improve the developer experience(DX).

建议优先完善高频组件的 TypeScript 类型声明。

TinyVue 高频组件

What does the proposed API look like

Take the alert component as an example.

packages/renderless/src/alert/vue.ts

  // Add type declaration to state
  const state: IAlertState = reactive({
    show: true,
    getIcon: computed(() => api.computedGetIcon()),
    getTitle: computed(() => api.computedGetTitle()),
    contentVisible: false,
    contentDescribeHeight: 0,
    contentDefaultHeight: 0,
    contentMaxHeight: constants.CONTENT_MAXHEUGHT,
    scrollStatus: false
  })
export interface IAlertState {
  show: boolean
  getIcon: ComputedRef<string>
  getTitle: ComputedRef<string>
  contentVisible: boolean
  contentDescribeHeight: number
  contentDefaultHeight: number
  contentMaxHeight: number
  scrollStatus: boolean
}
image
kagol commented 1 year ago

For more information on how to supplement the type declaration of a component, please refer to discussion #252

kagol commented 10 months ago

The TypeScript type declaration of the component needs to be continuously improved.