๐Ÿšจ Object is possibly โ€˜nullโ€™.ts(2531)

๐Ÿšจ Object is possibly โ€˜nullโ€™.ts(2531)

tsconfigํŒŒ์ผ์—์„œ ์•ˆ์ „ํ•œ ์ฝ”๋“œ ๊ฐ€๋™์„ ์œ„ํ•ด strict์„ true๋กœ ์„ค์ •ํ–ˆ๋”๋‹ˆ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

...
    deathsList.appendChild(li);
...

์ด ์ฝ”๋“œ์˜ ์—๋Ÿฌ๋ฉ”์„ธ์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

const deathsList: Element | null;
// ๐Ÿšจ Object is possibly 'null'.ts(2531)

deathsList์˜ ํƒ€์ž…์ด Element ํ˜น์€ null์ด ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ ํ™•์‹คํ•˜๊ฒŒ ํ•ด๋‹ฌ๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

์• ์ดˆ์— deathList๋ฅผ ์„ ์–ธํ• ๋•Œ ํƒ€์ž…๋‹จ์–ธ์„ ํ™•์‹คํžˆ ํ•ด์ฃผ๋ฉด ๋˜๋Š” ์ผ์ด์ง€๋งŒ ์ด ์™ธ์—๋„ ๋‹ค์–‘ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”จ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

1. if๋ฌธ ์‚ฌ์šฉ

์ฝ”๋“œ์˜ ๋ฐ”๋กœ ์œ—์ค„์— if๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ null์ผ ๊ฒฝ์šฐ returnํ•ฉ๋‹ˆ๋‹ค.

if (!deathList) {
  return;
}
deathsList.appendChild(li);

deathListh๊ฐ€ null์ด ๋˜๋ฉด return๋˜์–ด ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์ฝ”๋“œ๊นŒ์ง€ ๋‚ด๋ ค๊ฐ€์ง€ ์•Š๊ณ  ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ๋ชจ๋“  ํ•ด๋‹น ์—๋Ÿฌ ์ฝ”๋“œ๋ฅผ if๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ ธ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. assertion ์‚ฌ์šฉ(ํƒ€์ž… ๋‹จ์–ธ)

deathsList!.appendChild(li);

assertion ๊ธฐํ˜ธ !๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ null์ด ์•„๋‹ˆ๋ผ๊ณ  ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์— ์•Œ๋ ค์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ assertion์„ ์‚ฌ์šฉํ•ด์„œ ํƒ€์ž… ๋‹จ์–ธ์„ ํ•˜๊ฒŒ ๋˜๋ฉด esLint์—์„œ ์œ„ํ—˜ํ•˜๋‹ค๊ณ  ๊ฒฝ๊ณ ๋ฅผ ์ค๋‹ˆ๋‹ค.

๐Ÿ“Œ ํƒ€์ž… ๋‹จ์–ธ ๋ฌธ๋ฒ• ์‚ฌ์šฉ์‹œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ 

ํƒ€์ž… ๋‹จ์–ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฃผ์˜ํ•ด์•ผํ•  ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

interface Hero {
  name: string;
  skill: string;
}

const capt = {} as Hero;

// capt.name = 'capt';

ํƒ€์ž… ๋‹จ์–ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ธํ„ฐํŽ˜์ด์Šค์˜ ์†์„ฑ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€ ์•Š๋Š” ์œ„ํ—˜์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํƒ€์ž… ๋‹จ์–ธ์€ ํ™•์‹ ์ด ์žˆ์„ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

3. ์˜ต์…”๋„ ์ฒด์ด๋‹ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•˜๊ธฐ

์˜ต์…”๋„ ์ฒด์ด๋‹ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ?๊ธฐํ˜ธ๋กœ ๊ฐ„๋‹จํžˆ ์—๋Ÿฌ๋ฅผ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

...
    deathsList?.appendChild(li);
...

deathList๊ฐ€ null ์ด๋‚˜ undefined๋ฉด ํ‰๊ฐ€๋ฅผ ๋ฉˆ์ถ”๊ณ  undefined๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ถœ์ฒ˜

Leave a comment