- λ λ°΄λμΊμ μ΄νν°λΈ νμ μ€ν¬λ¦½νΈ λμμ μμ΄ν 11,12 μ½κ³ μ 리ν λ΄μ©μ λλ€.
- νμ μ€ν¬λ¦½νΈμμλ ν¨μ μ μΈλ¬Έ λ³΄λ€ ν¨μ ννμμ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
- κ·Έ μ΄μ λ ν¨μ νμ μ μΈμ ν¨μ ννμμ μ¬μ¬μ© ν μ μλ μ΄μ μ΄ μκΈ° λλ¬Έμ λλ€.
ν¨μ μ μΈλ¬Έ
function rollDice1(sides: number): number {
/* COMPRESS */ return 0; /* END */
} // Statement
ν¨μ ννμ
type DiceRollFn = (sides: number) => number;
const rollDice: DiceRollFn = (sides) => {
/* COMPRESS */ return 0; /* END */
};
μμ 2. lib.dom.d.ts μ μ μλμ΄ μλ fetch
νμ
μ μΈ ν¨μ νμ
μ μ¬μ¬μ©νμ¬ κ°κ²°νκ² μμ±ν μ μμ΅λλ€.
ν¨μ μ μΈλ¬Έ
async function checkedFetch(input: RequestInfo, init?: RequestInit) {
const response = await fetch(input, init);
if (!response.ok) {
throw Error("request failed:", response.status);
}
return response;
}
async function getQuote() {
const response = await checkedFetches('/quote?by=Mark+Twain');
const quote = await response.json();
return quote;
}
ν¨μ ννμ
const checkedFetch: typeof fetch = async (input, init) => {
const resp = await fetch(input, init);
if (!response.ok) {
throw Error("request failed:", response.status);
}
return response;
};
async function getQuote() {
const response = await checkedFetches('/quote?by=Mark+Twain');
const quote = await response.json();
return quote;
}
- fetch νμ
μ λ°ν νμ
κΉμ§ 보μ₯ ν©λλ€. μλ₯Ό λ€μ΄ throw λμ return μ νκ² λλ©΄
Promise<Response>
μμPromise<Response|Error>
νμ μ΄ λμ΄λ²λ¦¬κΈ° λλ¬Έμ, μλ¬λ₯Ό λ λλ€.
const checkedFetch: typeof fetch = async (input, init) => {
const resp = await fetch(input, init);
if (!response.ok) {
return Error("request failed:", response.status); //βοΈ
}
return response;
};
async function getQuote() {
const response = await checkedFetches('/quote?by=Mark+Twain');
const quote = await response.json();
return quote;
}
λλΆλΆμ κ²½μ° νμ μ μ¬μ©ν΄λλκ³ μΈν°νμ΄μ€λ₯Ό μ¬μ©ν΄λ λ©λλ€. νμ§λ§ λμ μ°¨μ΄λ₯Ό μκ³ λμΌν λ°©λ²μΌλ‘ νμ μ μ μν΄ μΌκ΄μ±μ μ μ§ν΄μΌ ν©λλ€.
type StateType = {
name: string;
capital: string;
};
interface StateInterface {
name: string;
capital: string;
}
interface StateLocation {
latitude: number;
}
interface StateWithPopInterface extends StateInterface {
population: number;
}
type StateWithPopType = StateLocation & StateWithPopInterface;
const stateA: StateWithPopInterface = {};
const stateB: StateWithPopType = {};
- μΈν°νμ΄μ€ νμ
μ κ°μ§
stateA
μμname
,capital
,population
λͺ¨λ μ μΈλμ΄μμ§ μλ€κ³ μλ¬λ₯Ό λ΄μ£Όκ³ μμ΅λλ€.
- type ν€μλλ₯Ό κ°μ§
stateB
μμname
,capital
,population
,latitude
κΉμ§ μλ¬λ₯Ό λ΄μΌνλ€κ³ μμμ νμ§λ§, μ€μ§name
,capital
,population
λ§ μλ¬λ₯Ό λ΄μ£Όκ³ μμ΅λλ€.
μ¦, μΈν°νμ΄μ€λ μ λμ¨ νμ
κ°μ 볡μ‘ν νμ
μ νμ₯νμ§λ λͺ»ν©λλ€. 볡μ‘ν νμ
μ νμ₯μ μν μ, νμ
κ³Ό &
λ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
μ°Έκ³
νμ μ μΈν°νμ΄μ€λ₯Ό νμ₯ κ°λ₯νλ―λ‘, νμ μ μμ μΈν°νμ΄μ€λ μ¬μ© κ°λ₯ ν©λλ€.
type AorB = "a" | "b"; //β
νμ
λ³μΉμμλ§ κ°λ₯,
type Input = {
/* ... */
};
type Output = {
/* ... */
};
type NamedVariable = (Input | Output) & { name: string }; //β
νμ
λ³μΉμμλ§ κ°λ₯
interface State {
name: string;
capital: string;
}
interface State {
population: number;
}
const wyoming: State = {
name: 'Wyoming',
capital: 'Cheyenne',
population: 500_000
}; // β
OK
- λ§μ½
State
λ₯Ό type λ³μΉμ μ¬μ©νμλ€λ©΄ μλ¬λ₯Ό λ λλ€.
-
κ°μ μ΄λ¦μ μΈν°νμ΄μ€λ₯Ό μ¬μ©νμ¬ μμ±μ νμ₯νλ κ²μ μ μΈ λ³ν©(declaration merging) μ΄λΌκ³ ν©λλ€.
-
μΈν°νμ΄μ€λ νμ μ μΈ νμΌ μμ±μ μ μΈλ³ν©μ μν΄ μ¬μ© λ©λλ€.
-
μ) Array μΈν°νμ΄μ€ tsconfigμ
"target": "ES5"
μΌ κ²½μ°,- array μ μΈν°νμ΄μ€λ lib.es5.ts μ μ μΈλ μΈν°νμ΄μ€κ° μ¬μ©λ©λλ€.
tsconfig νμΌλ΄
lib:["esnext"]
μΆκ°μ lib.es.2015.d.ts μ μ μΈλ μΈν°νμ΄μ€κ° λ³ν©λ©λλ€.κ²°κ³Όμ μΌλ‘ κ° μ μΈμ΄ λ³ν©λμ΄ μ 체 λ©μλλ₯Ό κ°μ§λ Arrayλ₯Ό κ°κ² λ©λλ€.
-
볡μ‘ν νμ μΌ κ²½μ° :
βοΈ νμ λ³μΉ μ¬μ©
-
νμ κ³Ό μΈν°νμ΄μ€ λκ°μ§ λ°©λ²μΌλ‘ ννν μ μλ κ°λ¨ν κ°μ²΄μΌ κ²½μ°:
βοΈ μΌκ΄μ±κ³Ό 보κ°μ κ΄μ μμ κ³ λ € ν νμκ° μμ΅λλ€.
-
μ€νμΌμ΄ ν립λμ§ μμ νλ‘μ νΈμΈ κ²½μ° :
βοΈ API μ λν νμ μ μΈμΌ κ²½μ° μΈν°νμ΄μ€λ₯Ό μ¬μ© ν©λλ€. (λ³ν©μ μ μ©)
βοΈ κ·Έλ¬λ νλ‘μ νΈ λ΄λΆμ μΌλ‘ μ¬μ©λλ νμ μ μ μΈ λ³ν©μ΄ λ°μνλ κ²μ μλͺ»λ μ€κ³ μ λλ€βοΈ -> νμ μ¬μ© κΆκ³ .
-
λμΌν νμ μκ·Έλμ²λ₯Ό κ°μ§λ μ¬λ¬κ°μ ν¨μλ₯Ό μμ±ν λλ 맀κ°λ³μμ νμ κ³Ό λ°ννμ μ λ°λ³΅ν΄μ μμ±νλ κ²λ³΄λ€ ν¨μμ 체μ νμ μ μΈμ μ μ©ν΄μΌ ν©λλ€.
-
νμ κ³Ό μΈν°νμ΄μ€μ μ°¨μ΄λ₯Ό μ΄ν΄νκ³ νλ‘μ νΈμμ μ΄λ€ λ¬Έλ²μ μ¬μ©ν μ§ κ²°μ ν λ μΌκ΄μ±κ³Ό 보κ°κΈ°λ²μ κ³ λ €ν΄μΌν©λλ€.