Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Taro 3 是否可以支持下 babel-plugin-react-css-modules 提供组件 styleName 属性的 TypeScript 类型呢? #7286

Closed
Junyan opened this issue Aug 8, 2020 · 3 comments
Labels
enhancement New feature or request

Comments

@Junyan
Copy link

Junyan commented Aug 8, 2020

这个特性解决了什么问题?

在普通的 react 项目中配置了 babel-plugin-react-css-modules ,可以通过 @types/react-css-modules 来增加标签元素的 styleName 属性的 TypeScript 类型。

目前情况:

<View styleName="app"'></View>

// 目前 eslint 提示
不能将类型“{ children: Element[]; styleName: string; }”分配给类型“IntrinsicAttributes & ViewProps & { children?: ReactNode; }”。
  类型“IntrinsicAttributes & ViewProps & { children?: ReactNode; }”上不存在属性“styleName”。

@types/react-css-modules 实现:

declare module 'react' {
    interface HTMLAttributes<T> {
        styleName?: string;
    }
    interface SVGAttributes<T> {
        styleName?: string;
    }
}

这个 API 长什么样?

支持各个小程序组件的 styleName 类型。

@taro-bot2 taro-bot2 bot added the enhancement New feature or request label Aug 8, 2020
@Junyan
Copy link
Author

Junyan commented Aug 9, 2020

目前通过以下方法增加类型解决了。

declare namespace JSX {
    interface IntrinsicAttributes {
      styleName?: string;
    }
}

就是不知其它使用者知不知道使用该方法增加类型。

@zousandian
Copy link

在 global.d.ts 添加

declare module 'react' {
  interface Attributes {
    styleName?: string;
  }
}

@Junyan Junyan closed this as completed Sep 5, 2020
@343512292
Copy link

@Junyan 感谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants