class Base<T> {
protected val: T;
}
class A extends Base<string> {
methodA(): string {
return this.val; // Ok, так как здесь val имеет тип string
}
}
class B extends Base<number> {
methodB(): number {
return this.val; // тоже ok, так как здесь val имеет тип number
}
}
class Result<T>{
public readonly result;
constructor(result: T){
this.result = result;
}
}
class NumberResult extends Result<number>{
constructor(result: number){
super(result);
}
public ResultPlusOne(){
return this.result + 1;
}
}
Result<T>
- это открытый дженерик, то есть в будущем на месте T должен быть указан другой\типы или типы для того чтобы создавать экземпляры класса.let result = new Result<number>(42)
class Result{
public readonly result;
constructor(result: number){
this.result = result;
}
}
class NumberResult extends Result<number>
useEffect(() => {
titleRef.current.addEventListener('keyup', addTodo); // <-- ???
return () => titleRef.current.removeEventListener('keyup', addTodo);
}, [])
return (
<> // <-- ???
<input
type="text"
value={ title }
onChange={ e => setTitle(e.target.value) }
ref={ titleRef }
/>
</> // <-- ???
);
function addTodo(e) {
if(e.keyCode === keyCodeEnter) { // <-- e.key === "Enter"
props.addTodoCreator({
title: title,
isCompleted: false,
color: 0,
});
}
}
const Header = ({ addTodoCreator }) => {
const [title, setTitle] = useState("");
const addTodo = (e) => {
if (e.key === "Enter") {
addTodoCreator({
title: title,
isCompleted: false,
color: 0,
});
}
};
return (
<input
type="text"
value={title}
onChange={(e) => setTitle(e.target.value)}
onKeyUp={addTodo}
/>
);
};
const [ form, setForm ] = useState({
login: '',
password: '',
});
const onChange = ({ target: t }) => setForm({ ...form, [t.name]: t.value });
<input name="login" value={form.login} onChange={onChange} />
<input name="password" value={form.password} onChange={onChange} />
Script elements inserted using innerHTML do not execute when they are inserted.
<img src='x' onerror='alert(1)'>
abstract class Figure {
getArea(): void{
console.log("Not Implemented")
}
abstract getColor(): void // {} <<<<<<<<<<<<<<
}
class Rectangle extends Figure{
getColor() {
console.log('is red');
}
}
// const f = new Figure(); // error
const r = new Rectangle();
console.log(r)
r.getArea();
r.getColor();