import React, {useEffect, useRef, useState} from 'react'; // 多用用if(typeOf something === 'string'){}这种方式去解决问题 interface Person { firstName: string, lastName: string, } type RealOrFake = 'real' | 'fake'; type StringOrBoolean = 'string'| boolean; interface props { firstName?: string; age: number; ok: boolean, fn: (lastName: string) => string, obj?: { f1: string }, obj2?: Person, onChange: (event: React.ChangeEvent) => void, str?: 'real'|'fake', haha?: RealOrFake, func?: Function, unknown: unknown, } const ComponentOne:React.FC = ({firstName, age, onChange}) => { const [name, setName] = useState(firstName); const elRef = useRef(null); useEffect(() => { setName(undefined); const name = document.getElementById('jj') as HTMLInputElement; }, []); return (

{name}

{age}

{({count, setCount}) => (
{count}
)}
); }; interface Props { children: (data: { count: number; // setCount: React.Dispatch>; setCount: any; }) => JSX.Element | null } const Dd:React.FC = ({children}) => { const [count, setCount] = useState(1); const divRef = useRef(); return (
{children({count, setCount})}
) }; enum Role {NAME = 'haha', age = 'youta'} function combine(input1: number|string, input2: number|string){ if(typeof input1 === 'number' && typeof input2 === 'number'){ return input1 + input2; } } const func = (): number => { return 1; } // interface input { // input1: string, // input2: string, // } // function combine(input1, input2){ // return input1 + input2; // } export default ComponentOne;