๐ข anyScript ๋ ์ด์ ๊ทธ๋ง
ํ๋ก์ ํธ์ tsconfig.json ํ์ผ์์ compilerOptions ์์ [์ฐธ๊ณ : https://www.typescriptlang.org/tsconfig]
noImplicityAny ๋ any ๋ผ๋ ํ์ ์ด ์๋์น์๊ฒ ๋ฐ์ํ ๊ฒฝ์ฐ ์๋ฌ๋ฅผ ๋์์ฃผ๋ ์ค์ ์ด๋ค
์ฆ, true ๋ก ์ค์ ํ ๊ฒฝ์ฐ any ๋ก ์ถ๋ก ๋ ์ ์๋ ํ์ ์ ๋ช ์์ ์ผ๋ก ์ง์ ํด์ค์ผ ํ๋ค.
ํ์ง๋ง feature ๋ฅผ ๊ฐ๋ฐํ๋ค๋ณด๋ฉด ์๊ฐ์ ์ซ๊ธฐ๊ฑฐ๋ ํน์ ๊ท์ฐฎ์์ ํ์ ์ง์ ์ any ๋ฅผ ๋จ๋ฐํ๊ฒ ๋๋๋ฐ...
'any' ํ์ ์ ํ์ ์คํฌ๋ฆฝํธ์ ํ์ ์ฒดํฌ๋ฅผ ์์ ํ ๋ฌด์ํ๊ฒ ๋ง๋ค์ด ์ค๋ค. 'any' ํ์ ์ ๋ณ์์๋ ์ด๋ค ์ข ๋ฅ์ด ๊ฐ์ด๋ ํ ๋นํ ์ ์์ผ๋ฉฐ, ๊ทธ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ค ์์ ์ ์ํํด๋ ํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ๋ฌ๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค์ง ์๋๋ค.
๊ฒฐ๊ตญ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฌดํจํ(?) ์ํค๋๊ฑฐ์ ๋ค๋ฆ์ด ์์ด์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฐ๋ ์ด์ ๊ฐ ์์ด์ง๊ฒ ๋๋ค. ๊ทธ๋์ ํ์ ์ง์ ์ ํ์ ์คํฌ๋ฆฝํธ ์ฌ์ฉ์ ๊ธฐ๋ณธ์ค์ ๊ธฐ๋ณธ์ด ๋์ด์ผ ํ๋ค .. (๋ฐ์ฑํ์)
๐ข unknown ํ์ ?
'unknown' ํ์ ์ any ์ ๋น์ทํ๊ฒ ์ด๋ค ์ข ๋ฅ์ ๊ฐ์ด๋ ํ ๋นํ ์ ์์ง๋ง,
ํด๋น ๊ฐ์ ์ฌ์ฉํ๊ธฐ ์ ์ ํ์ ์ ์ขํ์ (type narrowing) ํ์ธํด์ผ ํ๋ค. โก๏ธ ์ด๋ ๋ ์์ ํ ๋ฐฉ์์ ์ ๊ณตํ๋ค.
let something: unknown = "hello";
something = 3; // No error
something = []; // No error
// Before we can call any method or property on it, we have to check its type
if (typeof something === "string") {
console.log(something.toUpperCase()); // OK
}
if (something instanceof Array) {
console.log(something.push(1)); // OK
}
๐ข ๋น๊ต
// any ์ฌ์ฉ
let value1: any = 10;
let value2: any = 'hello';
// unknown ์ฌ์ฉ
let value3: unknown = 10;
let value4: unknown = 'hello';
// unknown ์ any ๋ก ํ ๋นํ๋ ๊ฒ์ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์์
let anyValue: any = value3;
// BUT! unknown์ ์ฌ์ฉํ๋ฉด ๋ช
์์ ์ธ ํ์
ํ์ธ์ด ํ์ํจ
let numberValue: number = value3; //ERROR
if(typeof value3 === 'number') {
numberValue = value3; // ํ์
ํ์ธ ํ ํ ๋น ๊ฐ๋ฅ
}
๐ข ๊ทธ๋์ ์ธ์ ๋ฌด์์ ์ฌ์ฉํด์ผ ํ๋?
โ๏ธ ๊ฐ๋ฅํ ํ 'any' ์ฌ์ฉ์ ํผํ๊ณ , ํ์ ์ ๋ช ํํ ํ ์ ์์๋๋ ํญ์ ๋ช ํํ ํ์ ์ ์ฌ์ฉํด์ผ ํ๋ค.
โ๏ธ ์ฝ๋์ ํน์ ๋ถ๋ถ์์ ํ์ ์ ์ ์ ์๋ ๊ฒฝ์ฐ 'unknown' ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ์ด๋ ๊ทธ ๊ฐ์ ์ฌ์ฉํ๊ธฐ ์ ์ ํ์ ์ ํ์ธํ๋๋ก ๊ฐ์ ํ๋ค. ๋ ์์ ํ ์ฝ๋๋ก ์ด์ด์ง.
'frond-end' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ก๊ทธ์์ ์ ๋ค๋ฅธ ์๋ฌ ์ํ ์ฝ๋ ๋ ๊ฐ์ด ๋ณด์ฌ์ฃผ๋ ๋ฌธ์ (axios + vue3) (0) | 2024.03.07 |
---|---|
[CSS] z-index ์ ๋์๋ฐฉ์ (1) | 2024.03.04 |
CORS (0) | 2023.09.06 |
TDD (Test-Driven Development) (0) | 2023.09.02 |
GitHub ์ฌ์ฉ๋ฒ (0) | 2022.02.17 |