## Notes One difference is with hoisting. ## TypeScript Components created from expressions can be typed: ```typescript const MyComponent: React.FC = () => <h1>Hello, world!</h1> ``` But function declarations cannot ```typescript // is invalid! function MyComponent(): React.FC { return <h1>Hello, world!</h1> } ``` Instead, function declarations declare the return type ```typescript function MyComponent(): React.ReactNode { return <h1>Hello, world!</h1> } ``` ## Props The following are basically the same ```typescript type Props = { name: string } const MyExpressionComponent: React.FC<PropsWithChildren<Props>> = ({name, children}) => <h1>{children}, {name}!</h1> function MyDeclaredComponent({ name }: Props): React.ReactNode { return <h1>Hello, {name}!</h1> } ```