Определение структуры объектов с помощью интерфейсов
Используйте интерфейс для описания структуры объекта
«Определение структуры объектов с помощью интерфейсов» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 4 уроков всего.
Добро пожаловать
Базовый интерфейс
interface User {
id: number;
name: string;
email: string;
}
const alice: User = { id: 1, name: 'Alice', email: 'a@b.com' };Необязательные свойства с помощью ?
interface Config {
host: string;
port?: number; // optional
timeout?: number; // optional
}Свойства только для чтения
interface Point {
readonly x: number;
readonly y: number;
}
const p: Point = { x: 5, y: 10 };
// p.x = 0; // Error!Сигнатуры методов
interface Animal {
name: string;
speak(): string;
move(distance: number): void;
}Сигнатуры индекса
interface StringMap {
[key: string]: string;
}
const headers: StringMap = {
'content-type': 'application/json',
'accept': 'text/html',
};Структурная типизация
interface Named { name: string; }
function greet(obj: Named) { console.log(obj.name); }
greet({ name: 'Alice', age: 30 }); // Extra props OK when not a literalПроверка лишних свойств
interface Config { host: string; }
// const c: Config = { host: 'localhost', extra: 1 }; // Error on literal
const obj = { host: 'localhost', extra: 1 };
const c: Config = obj; // OK — not a fresh literalИнтерфейс для типов функций
interface Greeter {
(name: string): string;
}
const greet: Greeter = name => 'Hello, ' + name;Вложенные интерфейсы
interface Address { street: string; city: string; }
interface Person { name: string; address: Address; }
const p: Person = { name: 'Alice', address: { street: '1 Main', city: 'NY' } };Интерфейс и экземпляр класса
interface Saveable { save(): Promise<void>; }
class UserService implements Saveable {
async save() { /* ... */ }
}Быстрая проверка
Итоги
Часто задаваемые вопросы
Урок «Определение структуры объектов с помощью интерфейсов» бесплатный?
Да — полный текст урока «Определение структуры объектов с помощью интерфейсов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 4 уроков всего.
Чему я научусь в уроке «Определение структуры объектов с помощью интерфейсов»?
Используйте интерфейс для описания структуры объекта Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать TypeScript Academy?
Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Определение структуры объектов с помощью интерфейсов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке TypeScript Academy?
Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Определение структуры объектов с помощью интерфейсов
- Псевдонимы типов для сложных типов
- Расширение и объединение интерфейсов
- Интерфейс или тип: когда что использовать