Skip to content

Commit 6adf2b2

Browse files
authored
๐Ÿ”€: Udemy/Ts/section2/26 (#30)
* ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: issue templates ์ƒ์„ฑ Github์—์„œ ์ž‘์„ฑํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: pr-template ์ƒ์„ฑ Github์—์„œ ์ž‘์„ฑํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: pr-template ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: pr-template ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐Ÿšฉ: udemy section2์˜ 14๋ฒˆ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์‹ค์Šต์„ ํ–ˆ๋‹ค. * ๐Ÿšฉ: return์˜ ์ •์˜๋กœ ํ•จ์ˆ˜ ํƒ€์ž…์ด ๋ฐ˜ํ™˜๋˜๋Š” ์˜ˆ์‹œ * ๐Ÿšฉ: ํ•จ์ˆ˜ ๋ฐ˜ํ™˜ ํƒ€์ž…์„ ์ง€์ • ํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” error * ๐Ÿ›: ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ํƒ€์ž… error ts(2322)๋ฅผ ์ •์ƒ ๋™์ž‘ํ•˜๊ฒŒ number๋กœ ํƒ€์ž…์„ ํ• ๋‹น, void์™€ undefined์˜ ๊ฐœ๋… ๋ฐ ํ™œ์šฉ ์‹ค์Šต * ๐Ÿšฉ: undefined๋ฅผ ํ•จ์ˆ˜์— ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๋Š” ์ด์œ 
1 parent 0ea6332 commit 6adf2b2

File tree

5 files changed

+98
-58
lines changed

5 files changed

+98
-58
lines changed

โ€Žsrc/app.js

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,24 @@
1-
//console.log(person.name); ์œผ๋กœ person.name, ๊ฐ์ฒด ํƒ€์ž…์œผ๋กœ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ object ํƒ€์ž… ์ •์˜ ๋ฐฉ๋ฒ•
2-
var person = {
3-
name: 'Maximilian',
4-
age: 30
5-
};
6-
console.log(person.name); //error : Object์— name์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?
1+
//ํ•ญ์ƒ ์œ ๋‹ˆ์˜จ ํƒ€์ž…์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์€ ๋งŽ์ด ๋ฒˆ๊ฑฐ๋กญ๋‹ค. ์ด์— alias ํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉ์ž ์ง€์ • ํƒ€์ž…์„ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ํƒ€์ž…์„ ์šฐ๋ฆฌ๊ฐ€ ๋‹ค๋กœ ๋ณ„์นญ์œผ๋กœ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
2+
function combine(n1, n2, resultConversion) {
3+
var result;
4+
if (typeof n1 === 'number' && typeof n2 === 'number' || resultConversion === 'as-number') {
5+
result = +n1 + +n2;
6+
}
7+
else if (typeof n1 === 'string' && typeof n2 === 'string') {
8+
result = n1 + n2;
9+
}
10+
else {
11+
result = n1.toString() + n2.toString();
12+
}
13+
// if (resultConversion === 'as-number') {
14+
// return +result;
15+
// } else {
16+
// return result.toString();
17+
// }
18+
}
19+
var combineAges = combine(20, 30, 'as-number');
20+
console.log(combineAges);
21+
var combinedStringAges = combine('20', '30', 'as-number');
22+
console.log(combinedStringAges);
23+
var combineNames = combine('Max', 'Anna', 'as-text');
24+
console.log(combineNames);

โ€Žsrc/app.ts

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,24 @@
1-
//ํ•ญ์ƒ ์œ ๋‹ˆ์˜จ ํƒ€์ž…์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์€ ๋งŽ์ด ๋ฒˆ๊ฑฐ๋กญ๋‹ค. ์ด์— alias ํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉ์ž ์ง€์ • ํƒ€์ž…์„ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ํƒ€์ž…์„ ์šฐ๋ฆฌ๊ฐ€ ๋‹ค๋กœ ๋ณ„์นญ์œผ๋กœ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
1+
function add(n1: number, n2: number): number {
2+
return n1 + n2; //error ts(2322) 'number' ํ˜•์‹์€ 'string' ํ˜•์‹์— ํ• ๋‹นํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
3+
} //ํ˜„์žฌ return์— ์ •์˜ํ•œ n1+n2๋กœ ์ธํ•ด์„œ addํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ํƒ€์ž…์€ Number์ด๋‹ค. ๋งŒ์•ฝ toSting์œผ๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•œ `n1.toString() + n2.toString()`์ผ ๊ฒฝ์šฐ ๋ฐ˜ํ™˜๋œ ๊ฐ’์€ string์œผ๋กœ ํƒ€์ž…์ด ๋ฐ˜ํ™˜ ๋  ๊ฒƒ์ด๋‹ค.
24

3-
type Combinable = number | string;
4-
type ConversionCustom = 'as-number' | 'as-text';
5-
6-
function combine(
7-
n1: Combinable,
8-
n2: Combinable,
9-
resultConversion: ConversionCustom,
10-
) {
11-
let result;
12-
if (typeof n1 === 'number' && typeof n2 === 'number' || resultConversion === 'as-number') {
13-
result = +n1 + +n2;
14-
} else if (typeof n1 === 'string' && typeof n2 === 'string') {
15-
result = n1 + n2;
5+
function printResult(num: number | string | undefined): void {
6+
if (typeof num === 'number' || typeof num === 'string') {
7+
console.log('Result: ', +num);
168
} else {
17-
result = n1.toString() + n2.toString();
9+
console.log('this is Undefined!');
1810
}
19-
// if (resultConversion === 'as-number') {
20-
// return +result;
21-
// } else {
22-
// return result.toString();
23-
// }
24-
}
11+
} //์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ํƒ€์ž…์„ ์ •ํ•˜์ง€ ์•Š์œผ๋ฉด void๋กœ ํŒ๋‹จํ•œ๋‹ค. `:void`๋ฅผ ๋ช…์‹œํ•˜์ง€ ์•Š์•„๋„ ํ•ด๋‹น ํ•จ์ˆ˜์— ๋งˆ์šฐ์Šค๋ฅผ ํ˜ธ๋ฒ„ํ•˜๋ฉด void๋กœ ํŒ๋ณ„ ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ตณ์ด void๋ฅผ ๋ช…์‹œํ•  ํ•„์š”๋Š” ์—†๋‹ค.
2512

26-
const combineAges = combine(20, 30, 'as-number');
27-
console.log(combineAges);
13+
//๋ฐ˜ํ™˜๋˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ log๋กœ ํ™•์ธ์„ ํ•ด๋ณด๋ฉด ์–ด๋–ค ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ๊นŒ
14+
console.log(printResult(add(5, 12))); //๊ฒฐ๊ณผ์ ์œผ๋กœ `undefined`๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. ๋ฐ˜ํ™˜๋œ ๊ฐ’์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ •์˜๋˜์ง€ ์•Š์€ ๋ฐ•์Šค๋งŒ ์ถœ๋ ฅ์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฐธ๊ณ ๋กœ `undefined`๋Š” ๊ฐ’์ด ์—†๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๊ฐ’์„ ๋‹ด์•„๋‚ด๊ณ  ์žˆ๋Š” ๋ฐ•์Šค์— ์•„๋ฌด๊ฒƒ๋„ ๋‹ด๊ฒจ ์žˆ์ง€ ์•Š๋‹ค๋Š” ์˜๋ฏธ์˜ `๊ฐ’`์ด๋‹ค. ์ฆ‰, ๋น„์–ด ์žˆ๋Š” ๋ฐ•์Šค๋ฅผ ์ถœ๋ ฅํ•œ ๊ฒƒ์ด๋‹ค.
2815

29-
const combinedStringAges = combine('20', '30', 'as-number');
30-
console.log(combinedStringAges);
16+
let UndefinedValue: undefined; //๋ณ€์ˆ˜๋กœ undefined๋ผ๋Š” ํƒ€์ž…์„ ์ง€์ •ํ•  ์ˆ˜๋Š” ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•จ์ˆ˜์—์„œ๋Š” undefined๋ผ๋Š” ํƒ€์ž…์„ ํ• ๋‹น ํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ๋ฐ˜ํ™˜๊ฐ’์ด ์—†๋Š” ํ•จ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด undefined๊ฐ€ ์ถœ๋ ฅ๋˜๋Š”๋ฐ ์ด๋Š” ํ•จ์ˆ˜์˜ ํ™œ์šฉ๊ณผ ์˜๋ฏธ๊ฐ€ ์ƒ์‹คํ•˜๊ฒŒ ๋œ๋‹ค.
17+
18+
function UndefinedFunction(value: string): undefined {
19+
console.log(value);
20+
// return value; //error ts(2322) -> 'string' ํ˜•์‹์€ 'undefined' ํ˜•์‹์— ํ• ๋‹นํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค
21+
return; //๊ฒฐ๊ณผ์ ์œผ๋กœ ํ•จ์ˆ˜์— ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” return์ด์—ฌ์•ผ undefined๊ฐ€ ๋œ๋‹ค.
22+
}
3123

32-
const combineNames = combine('Max', 'Anna', 'as-text');
33-
console.log(combineNames);
24+
printResult(UndefinedFunction('test'));

โ€Žsrc/basics.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ function addTemplate(n1: number, n2: number, showResult: boolean, phrase: string
99

1010
const number1 = 5;
1111
const number2 = 2.8;
12-
const printResult = true;
12+
const printResultTemp = true;
1313
const resultPhrase = 'Result is: ';
1414
// resultPhrase = 0; //error -> ํƒ€์ž… ์ถ”๋ก ์œผ๋กœ resultPhrase๋Š” string์ด๋‹ค. ๋”ฐ๋ผ 0์ด๋ผ๋Š” numberํƒ€์ž…์„ ํ• ๋‹นํ•  ์ˆ˜ ์—†๋‹ค.
1515

16-
addTemplate(number1, number2, printResult, resultPhrase);
16+
addTemplate(number1, number2, printResultTemp, resultPhrase);
1717

1818
const person: {
1919
name: string,

โ€Žsrc/union-aliases.ts.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
type Combinable = number | string;
2+
type ConversionCustom = 'as-number' | 'as-text';
3+
4+
function combine(
5+
n1: Combinable,
6+
n2: Combinable,
7+
resultConversion: ConversionCustom,
8+
) {
9+
let result;
10+
if (typeof n1 === 'number' && typeof n2 === 'number' || resultConversion === 'as-number') {
11+
result = +n1 + +n2;
12+
} else if (typeof n1 === 'string' && typeof n2 === 'string') {
13+
result = n1 + n2;
14+
} else {
15+
result = n1.toString() + n2.toString();
16+
}
17+
// if (resultConversion === 'as-number') {
18+
// return +result;
19+
// } else {
20+
// return result.toString();
21+
// }
22+
}
23+
24+
const combineAges = combine(20, 30, 'as-number');
25+
console.log(combineAges);
26+
27+
const combinedStringAges = combine('20', '30', 'as-number');
28+
console.log(combinedStringAges);
29+
30+
const combineNames = combine('Max', 'Anna', 'as-text');
31+
console.log(combineNames);

โ€Žtsconfig.json

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
{
2-
"compilerOptions": {
3-
"target": "es5",
4-
"lib": [
5-
"dom",
6-
"dom.iterable",
7-
"esnext"
8-
],
9-
"allowJs": true,
10-
"skipLibCheck": true,
11-
"allowSyntheticDefaultImports": true,
12-
"strict": true,
13-
"forceConsistentCasingInFileNames": true,
14-
"noFallthroughCasesInSwitch": true,
15-
"module": "commonjs",
16-
"outDir": "dist",
17-
"rootDir": "src"
18-
},
19-
"include": [
20-
"src/**/*"
21-
],
22-
"exclude": [
23-
"node_modules"
24-
]
2+
"compilerOptions": {
3+
"target": "es5",
4+
"lib": [
5+
"dom",
6+
"dom.iterable",
7+
"esnext"
8+
],
9+
"allowJs": true,
10+
"skipLibCheck": true,
11+
"allowSyntheticDefaultImports": true,
12+
"strict": true,
13+
"forceConsistentCasingInFileNames": true,
14+
"noFallthroughCasesInSwitch": true,
15+
"module": "commonjs",
16+
"outDir": "dist",
17+
"rootDir": "src"
18+
},
19+
"include": [
20+
"src/**/*"
21+
],
22+
"exclude": [
23+
"node_modules"
24+
]
2525
}

0 commit comments

Comments
ย (0)