즉,
function logSong(song: string | undefined): void {
if (!song) {
return; // ✅ Ok
}
console.log(`${song}`);
return true; // ❌ Error 값 반환 비허용
}
let songLogger: (song: string) => void;
songLogger = (song) => {
console.log(`${song}`);
};
songLogger("Heart of Glass"); // ✅ Ok
function returnsVoid() {
return;
}
let lazyValue: string | undefined;
lazyValue = returnsVoid(); // ❌ Error
const records: string[] = [];
function saveRecords(newRecords: string[]) {
newRecords.forEach((record) => records.push(record));
}
saveRecords(["21", "Come On Over", "The Bodyguard"]);
function fail(message: string): never {
throw new Error(`Invariant failure: ${message}`);
}
function workWithUnsafeParam(param: unknown) {
if (typeof param !== "string") {
fail(`param should be a string, not ${typeof param}`);
}
param.toUpperCase(); // ✅ Ok
}