interfaces, classes, arrays

This commit is contained in:
DESKTOP-8HAFCLV\Yugr 2025-06-09 15:57:36 +04:00
parent e93836bb9d
commit 34e0d8d450
2 changed files with 121 additions and 2 deletions

View File

@ -1 +1,120 @@
console.log('Hello world!')
interface People {
name: string;
age: number | undefined;
}
let people01: People = {
name: "Kostya",
age: undefined
};
let people02: People = {
name: "Yura",
age: 32
}
people01.age = 60;
// console.log(people01);
// console.log(JSON.stringify(people01));
// console.log(people01.age);
console.log(`${people01.name} имеет возраст ${people01?.age ?? '40'}`); //Kostya --- 60
console.log(`${people02.name} имеет возраст ${people02?.age ?? '40'}`); //Yura --- 32
console.log(`${people01.name} имеет возраст ${people02?.age ?? '40'}`);
interface PeopleLocation extends People {
location: string;
}
let peopleLocation01: PeopleLocation = {
name: "djdf",
age: 42342,
location: "dafdf"
}
class ProcessingPeoples implements PeopleLocation {
name: string;
age: number | undefined;
location: string = '';
constructor(name: string){
this.name = name;
}
}
class ProcessingPeoplesExt extends ProcessingPeoples {
isActive: boolean = false;
constructor(name: string, isActive: boolean){
super(name);
if(isActive) {
this.location = 'Gorkyi street';
}
else{
this.location = '';
}
}
}
let a: ProcessingPeoples = new ProcessingPeoplesExt("Vasya", true);
class Duck {
type: string = 'Duck';
weight: number = 0;
log(){
console.log("I'm simple duck");
}
}
interface Eateable {
eat(): void;
}
class GreyDuck extends Duck implements Eateable{
constructor() {
super();
this.type = 'GreyDuck'
}
override log(){
console.log("I'm grey duck");
}
eat(){
console.log("I'm eat");
}
}
class RedDuck extends Duck implements Eateable {
constructor() {
super();
this.type = 'RedDuck'
}
eat(): void {
console.log("I'm eat");
}
override log(){
console.log("I'm red duck");
}
}
let duck1 = new RedDuck();
let duck2 = new GreyDuck();
let array: Eateable[] = [
duck1,
duck2
];
for (let item of array) {
item.eat();
}
let array2: Duck[] = [
duck2,
duck1
];
for (let item of array2) {
item.log();
}
array2.filter(item => "eat" in item);

File diff suppressed because one or more lines are too long