type alias
νμ μ λ³μμ λ΄μ μ μλ€. type aliasλ μλ¬Έ λλ¬Έμλ‘ μμνλ κ·μΉμ΄ μλ€.
type Name = string | number;
let μ΄λ¦ :Name = 'kim';
type MyObject = {
name? : string,
age : number
}
let μ² μ :MyObject = {
name : 'kim',
age : 50
}
Object λ³κ²½ μλ¬λμ°κΈ°
type MyObject = {
readonly name : string,
}
let μ² μ :MyObject = {
name : 'kim',
}
μ² μ.name = 'Park'; // μλ¬
constλ λ³μ μ¬ν λΉμ΄ λΆκ°λ₯νμ§λ§, objectμ λ΄λΆ μμ±μ λ³κ²½ν μ μλ€. νμ
μ€ν¬λ¦½νΈμμλ μ΄κ²μ μλ¬λ₯Ό λμΈ μ μλ€.
*** μ€μν μ¬μ€ : JSλ‘ μ»΄νμΌ λ λ μμ λ³κ²½μ λ§λ κ²μ μλκ³ , κ·Έλ₯ μλ¬λ§ λμ°λ κ². νμ
μ€ν¬λ¦½νΈ μλ¬λ μλν°μ ν°λ―Έλμμλ§ μ‘΄μ¬νλ€.
type alias extend
type Name = string;
type Age = number;
type Person = Name | Age;
μμ²λΌ νμ λκ°λ₯Ό ν©μ³ νμ νλλ‘ λ§λλ κ²λ λ¬Όλ‘ κ°λ₯νλ€.
&μ°μ°μλ‘ object νμ extend (ν©μΉκΈ°)
type PositionX = { x : number };
type PositionY = { y : number };
type NewType = PositionX & PositionY;
let position :NewType = { x : 10, y : 20 };
** μ£Όμμ¬ν : κ°μ μ΄λ¦μ typeλ³μλ μ¬μ μκ° λΆκ°λ₯νλ€.
type λμ interface
type ν€μλ λμ interface ν€μλλ₯Ό μ¬μ©ν΄λ 무방νλ€.
보ν΅μ ꡬ쑰λ₯Ό νμ₯ν΄μΌ ν λ interfaceλ₯Ό, μ λμΈμ΄λ κ΅μ°¨ νμ
μ μ¬μ©νκ±°λ νμ
μ μ‘°μν΄μΌ ν λ typeμ μ¬μ©νλ κ²μ΄ μΌλ°μ μΈ κ΄λ‘λ€.
interface PositionX {
x: number;
}
interface PositionY {
y: number;
}
type NewType = PositionX & PositionY;
let position: NewType = { x: 10, y: 20 };
** μ£Όμμ¬ν : κ°μ μ΄λ¦μ typeλ³μλ μ¬μ μκ° λΆκ°λ₯νμ§λ§ interfaceλ μ μΈλ νμλ νμ₯μ΄ κ°λ₯νλ€. λ€λ₯Έ κ³³μμ κ°μ μ΄λ¦μ interfaceλ₯Ό μ μΈνλ©΄ μ΄μ μ μΈκ³Ό λ³ν©λλ€.
& λμ implementsλ‘ ν©μΉκΈ°
ν΄λμ€λ κ°μ²΄κ° interfaceλ₯Ό ꡬνν λλ implements ν€μλλ₯Ό μ¬μ©νλ€.
TypeScriptμμ implements ν€μλλ μ£Όλ‘ ν΄λμ€κ° νΉμ μΈν°νμ΄μ€λ₯Ό ꡬνν λ μ¬μ©λλ€. implementsλ ν΄λμ€μ μΈν°νμ΄μ€ κ°μ κ΄κ³λ₯Ό μ μΈνλλ° μ¬μ©λλ ν€μλμ΄λ―λ‘, μΌλ°μ μΌλ‘ var, let, const λ±μ λ³μ μ μΈκ³Ό ν¨κ» μ¬μ©λμ§ μλλ€.
interface Car {
start(): void;
stop(): void;
}
class ElectricCar implements Car {
start() {
console.log("Electric car is starting...");
}
stop() {
console.log("Electric car is stopping...");
}
chargeBattery() {
console.log("Charging the battery...");
}
}
const myElectricCar = new ElectricCar();
myElectricCar.start();
myElectricCar.stop();
myElectricCar.chargeBattery();β
μΆμ² : μ½λ©μ ν https://codingapple.com/ / TypeScript Documentation https://www.typescriptlang.org/docs/handbook/2/objects.html
'π TypeScript > κ°λ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ½λ©μ ν] νμ μ€ν¬λ¦½νΈ HTML μ‘°μμ μ£Όμμ (1) (0) | 2023.12.17 |
---|---|
[μ½λ©μ ν] ν¨μμ object λ©μλμ type alias μ§μ νκΈ° (0) | 2023.12.13 |
[μ½λ©μ ν] νμ μ νΉμ κ°μΌλ‘ μ§μ νμ : Literal Types (+ as const) (0) | 2023.12.13 |
νμ μ€ν¬λ¦½νΈ νμ μ μΆ(Type Inference) (0) | 2023.12.07 |
[μ½λ©μ ν] νμ μ€ν¬λ¦½νΈ νμ μ§μ λ°©λ² (0) | 2023.12.07 |