const ApiServiceModule = {
get: (url: string): Promise<unknown> => fetch(url)
.then(response => response.json())
.catch(err => console.error(err))
}
export const Auth: React.FC = () => {
const onChange1 = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {}, []);
const onChange2 = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {}, []);
return(
<Child Parent = {{onChange1, onChange2}}/>
)
}
export const Child: React.FC<Props> = ({onChange1, onChange2}) => {
у меня есть два больших интерфейсаВаша главная ошибка в этом, интерфейсы должны быть минимальны и описывать тот минимум, который требуется в конкретном месте.
{select: string}
и/или {items: number[]}
declare module '*.css' {
const classes: Readonly<Record<string, string>>;
export default classes;
}
qwe[2] = 77
Тут просто сразу 2 ошибки типов:[string, number]
- это вполне себе сахар над типом{readonly length: 2; 0: string; 1: number} & Readonly<typeof Array.prototype>
'length' | 0 | 1 | keyof typeof Array.prototype
interface ISubMain {
name: string;
lastname: string;
}
class Main {
constructor(public name: string) {}
}
class Sub extends Main implements ISubMain {
constructor(name: string, public lastname: string) {
super(name)
}
}
const sub = new Sub('michael', 'jackson')
function hello (person: ISubMain) {
console.log(person.name)
console.log(person.lastname)
}
hello(sub)