# ์๋ฌ ํด๊ฒฐ๐ Catch clause variable type annotation must be 'any' or 'unknown' if specified.ts(1196)
์๋์ ๊ฐ์ด ์๋ฌ ํธ๋ค๋ง์ ํ๋ ค๊ณ ํ ๋์๋ ํ์ ์ ์ด๋ป๊ฒ ์ ์ํด์ค ์ ์์๊น?
try {
await auth().createUserWithEmailAndPassword(email, password);
} catch (error: unknown) {
switch (
error.code // Object is of type 'unknown'.ts(2571)
) {
case 'auth/weak-password': {
Alert.alert('Write a stronger password!');
}
}
}
error์ ๋ํ ํ์ ์ ์ ์ํด์ฃผ๋ ค๊ณ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
interface AuthError {
code: string;
message: string;
}
try {
await auth().createUserWithEmailAndPassword(email, password);
} catch (error) {
// Catch clause variable type annotation must be 'any' or 'unknown' if specified.ts(1196)
switch (error.code) {
case 'auth/weak-password': {
Alert.alert('Write a stronger password!');
}
}
}
try-catch ๊ตฌ๋ฌธ ์ฌ์ฉ ์, catch๋ก ์กํ๋ error์ ๋ฐ๋ผ ์๋ฌ ํธ๋ค๋ง์ ํ๋ ค๊ณ ํ ๋. error์ ๋ํ ํ์ ์ ์๋ฅผ ํ ๊ฒฝ์ฐ์ ์๊ธฐ๋ ์๋ฌ๋ค. ํ์ง๋ง catch๋ก ์กํ๋ ์๋ฌ์ ํ์ ์ unexpectedํ๊ธฐ ๋๋ฌธ์ ํ๋์ ์๋ฌ ํ์ ์ผ๋ก ์ ์ํ ์ ์๋ค. ๋ฐ๋ผ์ ์๋์ ๊ฐ์ด ํ์ ๊ฐ๋๋ฅผ ์์ฑํ๋ค.
try {
await auth().createUserWithEmailAndPassword(email, password);
} catch (error) {
const isAuthError = (error: any): error is AuthError => {
return typeof error.code === 'string';
};
if (isAuthError(error)) {
switch (error.code) {
case 'auth/weak-password': {
Alert.alert('Write a stronger password!');
}
}
} else {
throw error;
}
}