Typescript
Fower itself is written in TypeScript, and Fower supports TypeScript perfectly.
#
ReactWhen use with React, Fower can be used in three ways:
- @fower/react component library
- Babel Preset
- JSX Pragma
#
@fower/react component libraryWhen using the @fower/react
component library, because the components it contains provide complete type definitions, you can directly get IntelliSense in the editor without any additional configuration.
import React from 'react'import { Box } from '@fower/react'
export default () => { return ( <Box toCenterY p-10 w-260 bgWhite rounded-10> <Box as="img" circle-48 src="/img/jobs.jpg" /> <Box ml-10> <Box textXL fontBold> Steve Jobs </Box> <Box as="span" gray800> Co-founder of Apple Inc. </Box> </Box> </Box> )}
#
Babel PresetMany people like the way Babel Preset. In order to get TypeScript IntelliSense, in addition to configuring the babel preset, you also need to add a type file in the project root directory, for example, we named it index.d.ts
, the content is as follows:
import { AtomicProps } from '@fower/atomic-props';
declare module 'react' { interface HTMLAttributes<T> extends AtomicProps {}}
Then, you can get the complete IntelliSense in the component.
import React from 'react'
export default () => { return ( <div toCenterY p-10 w-260 bgWhite rounded-10> <img circle-48 src="/img/jobs.jpg" /> <div ml-10> <h2 textXL fontBold> Steve Jobs </h2> <p gray800>Co-founder of Apple Inc.</p> </div> </div> )}
#
JSX PragmaIf you use the way of JSX Pragma, you need to add the /** @jsx jsx */
pragma at the top of each component file, so that you can get TypeScript IntelliSense.
/** @jsx jsx */import { jsx } from '@fower/react'
export default () => { return ( <div toCenterY p-10 w-260 bgWhite rounded-10> <img circle-48 src="/img/jobs.jpg" /> <div ml-10> <h2 textXL fontBold> Steve Jobs </h2> <p gray800>Co-founder of Apple Inc.</p> </div> </div> )}
#
React-NativeTo use Fower in React native, you only need to install the @fower/react-native
component library. @fower/react-native
is written in TypeScript, and the components it contains provide complete IntelliSense.
import React from 'react'import { View, Text, Image } from '@fower/react-native'
export default () => { return ( <View toCenterY p-10 w-260 bgWhite rounded-10> <Image circle-48 src="/img/jobs.jpg" /> <View ml-10> <View textXL fontBold> Steve Jobs </View> <Text gray800>Co-founder of Apple Inc.</Text> </View> </View> )}