В TypeScript вы можете добавить свойство к объекту на основе условия, используя конструкцию if-else или оператор '?'. Давайте рассмотрим оба подхода.
Первый подход с использованием конструкции if-else:
interface MyObject { name: string; age: number; } function addPropertyBasedOnCondition(obj: MyObject): MyObject { if (obj.age >= 18) { obj.hasDrivingLicense = true; } else { obj.hasDrivingLicense = false; } return obj; } const person1: MyObject = { name: "John", age: 25 }; const person2: MyObject = { name: "Jane", age: 16 }; const personWithDrivingLicense1 = addPropertyBasedOnCondition(person1); const personWithDrivingLicense2 = addPropertyBasedOnCondition(person2); console.log(personWithDrivingLicense1); // { name: "John", age: 25, hasDrivingLicense: true } console.log(personWithDrivingLicense2); // { name: "Jane", age: 16, hasDrivingLicense: false }
В этом примере мы определяем функцию addPropertyBasedOnCondition, которая принимает объект типа MyObject и проверяет его свойство age. Если значение свойства age больше или равно 18, мы добавляем свойство hasDrivingLicense со значением true; в противном случае, мы добавляем свойство hasDrivingLicense со значением false. Затем мы возвращаем измененный объект.
Второй подход с использованием оператора '?':
interface MyObject { name: string; age: number; hasDrivingLicense?: boolean; } function addPropertyBasedOnCondition(obj: MyObject): MyObject { obj.hasDrivingLicense = obj.age >= 18 ? true : false; return obj; } const person1: MyObject = { name: "John", age: 25 }; const person2: MyObject = { name: "Jane", age: 16 }; const personWithDrivingLicense1 = addPropertyBasedOnCondition(person1); const personWithDrivingLicense2 = addPropertyBasedOnCondition(person2); console.log(personWithDrivingLicense1); // { name: "John", age: 25, hasDrivingLicense: true } console.log(personWithDrivingLicense2); // { name: "Jane", age: 16, hasDrivingLicense: false }
В этом примере мы определяем интерфейс MyObject с опциональным свойством hasDrivingLicense, которое может быть присутствовать или отсутствовать. Затем мы определяем функцию addPropertyBasedOnCondition, которая принимает объект типа MyObject и использует оператор '?' для добавления свойства hasDrivingLicense в зависимости от значения свойства age.
Оба эти подхода решают задачу добавления свойства по условию в TypeScript. Вы можете выбрать подход, который наиболее соответствует вашему проекту и стилю кодирования.