๐ฑ ์ธํฐํ์ด์ค
ํ์ ์คํฌ๋ฆฝํธ๋ ์ผ๋จ ๊ฐ์ ํํ์ ์ด์ ์ ๋ง์ถ๊ณ ์๋ค.
์ด๋ฌํ ๊ฒ์ ๋ ํ์ดํ์ด๋ผ๊ณ ํ๋ค. ์ธํฐํ์ด์ค๋ ๊ฐ์ ํํ์ ๋ํ ์ด๋ฆ์ ์ง๋ ์ญํ ์ ํ๋ค
๐ฝ ์ธํฐํ์ด์ค ์ ์ธ ๋ฐ ์ฌ์ฉ
// ์ธํฐํ์ด์ค ์ ์ธ ๊ฐ์ ํํ์ ์ด๋ฆ์ ์ง์
// MusicInfo๊ฐ ์ธํฐํ์ด์ค์ด๊ณ musicId,musidName,artist์ ํํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
interface MusicInfo {
musicId: string;
musidName: string;
artist: string;
}
//playMusic๋ผ๋ ํจ์๋ param์ ์ธ์๋ก ๋ฐ๊ณ param์ ๊ฐ ํํ๋ MusicInfo๋ musicId,musidName,artist๋ฅผ ๋ฐ์ ์ ์๋ค
function playMusic(param: MusicInfo) {
console.log(`save musicId ${param.musicId}`);
console.log(`play music ${param.musidName} / ${param.artist}`);
}
์ธํฐํ์ด์ค ์ ์ธ MusicInfo๋ฅผ ์ ์ธํ๊ณ musicId,musidName,artist๋ฅผ string ํ์ ์ผ๋ก ์ ์ธํ๊ณ
playMusicํจ์์ ์ธ์์ ํ์ ์ MusicInfo์ผ๋ก ์ ์ํ๋ค
MusicInfor์ ํ์ ์ ๋ง์ด ์์ผ๋ฉด typescript์์๋ Error๋ฅผ ๋ณด์ฌ์ค๋ค.
โ๏ธ ์ธํฐํ์ด์ค ์ ํ์ ํ๋กํผํฐ
// artist์ ๋ฐ๋ก๋ค์ ?๋ฅผ ๋ถ์์ผ๋ก์ ์ ํ์ ํ๋กํผํฐ๋ก ์ค์
interface MusicInfo2 {
musicId: string;
musidName: string;
artist?: string;
playtime: number;
}
// playMusic2์ธ์์ ํ์
์ MusicInfo2๋ก ์ ์
function playMusic2(param: MusicInfo2): string {
let str = "";
str = `${param.musidName} ${param.artist}`;
return str;
}
// artist๋ฅผ ๋ฃ์ง ์์๋ ์ ์์ ์ผ๋ก ๋์ํ๋ค
playMusic2({
musicId: "music_000",
musidName: "์์1",
playtime: 10,
});
MusicInfo2๋ฅผ ์ธํฐํ์ด์ค๋ก ์ ์ํ๊ณ , playMusic2์ ์ธ์์ ํ์ ์ MusicInfo2๋ก ์ฌ์ฉํ๋ค.
๊ทธ๋ฆฌ๊ณ playMusic2์ artist๋ฅผ ๋ฃ์ง ์์๋ ํ์ํ๋กํผํฐ๊ฐ ์๋๊ธฐ ๋๋ฌธ์, ์ค๋ฅ๋ฅผ ๋ฑ์ง ์๋๋ค.
๐ช ์ด๊ณผ ํ๋กํผํฐ ๊ฒ์ฌ
์ด๊ณผํ๋กํผํฐ๋ ํ์ ์ ์ ์ํ์ง ์๋ ๊ฒฝ์ฐ์ ๋ฐ์ํ๋ค.
// playTime์ ์ ํ์ ํ๋กํผํฐ ์ ์ธ
interface MusicInfo3 {
musicId: string;
musicName: string;
playTime?: number;
}
// param์ ํ์
์ MusicInfo3์ผ๋ก ์ ์ธ
function PlayAdMusic(param: MusicInfo3) {
//๋ก์ง ์ฒ๋ฆฌ
}
// PlayAdMusic์ playsTime์ ๋ฃ์ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๋ฑ๋๋ค. playsTime์ MusicInfo3์ ์ ์๋์ด์์ง ์๋ค.
PlayAdMusic({
musicId: "music_0000",
musicName: "์์",
//Error : ์ด๊ณผ ํ๋กํผํฐ
//playsTime:123
});
MusicInfo3์ "playsTime"์ผ๋ก ๋ฃ์ ๊ฒฝ์ฐ ์๋ฌ๋ฅผ ๋ฑ๋๋ค. playsTime์ MusicInfo3์ ์ ์ ๋์ด์์ง ์๋ค.
์ด ๋ถ๋ถ์ ํด๊ฒฐํ ๋ ค๋ฉด ๋ฐฉ๋ฒ์ ์๋ค
ํ์ ๋จ์ธ์ผ๋ก ํด๊ฒฐํ๋ฉด ํ ์๋ ์์ผ๋ ๊ฐ์ธ์ ์ผ๋ก๋ ์ข์ ๋ฐฉ๋ฒ ๊ฐ์ง๋ ์๋ค.
//ํ์
๋จ์ธ์ ํตํด ์ฒ๋ฆฌ
PlayAdMusic({
musicId: "music_0000",
musicName: "์์",
playsTime: 123,
} as MusicInfo3);
๐ฉน ํจ์ ํ์
ํจ์์๋ ํ์ ์ ๋ฏธ๋ฆฌ ์ ํ ์ ๊ฐ ์๋ค
// ์ธ์์ src๋ฅผ ๋ฐ๊ณ boolean์ผ๋ก ๋ฆฌํดํ๋ค
interface PlayFunc {
(src: string): boolean;
}
// javascript์์๋ ํจ์๋ ๋ณ์ ์ทจ๊ธํ ์ ์์ผ๋ฏ๋ก, ๋ณ์์ฒ๋ผ ์ธ ์ ์๋ค.
let mySearch: PlayFunc;
//๋ณ์์ ํจ์๋ฅผ ์ ์ธํ์ฌ ์ฌ์ฉํ ์ ์๋ค
mySearch = function (src) {
console.log("src : ", src);
return true;
};
๐งน ์ธ๋ฑ์๋ธ ํ์
๋ฐฐ์ด์ ํค์ ํ์ ์ ์ ํ ์ ์๋ค. ์ธ๋ฑ์ค ์๋ช ํ์ ์ number,string,symbol ๋ง ์ ๊ณต
interface StringArray {
//๋ฐํ ํ์
๋ ํ์
[index: number]: string;
}
let myArray: StringArray;
//๋ฐฐ์ด์ ํค๋ ์ซ์์ด๊ณ ๋ฆฌํด๊ฐ์ ๋ฌธ์์ด์ด๋ค
myArray = ["Bob", "Tom"];
ํ๊ธฐ
ํ์ฌ๊น์ง๋ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ๋ค๋ง ๋ค๋ฃจ์๊ณ , ์ธ๋ฑ์๋ธํ์ ์ ์ข ๋ ๊ฐ์ธ์ ์ผ๋ก ๋ ๊ณต๋ถ๊ฐ ํ์ํด๋ณด์ธ๋ค
'typescript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ ํ์ ์คํฌ๋ฆฝํธ ์ ๋ค๋ฆญ (0) | 2025.02.07 |
---|---|
๐ ํ์ ์คํฌ๋ฆฝํธ ํจ์ (0) | 2025.01.18 |
๐ง ํ์ ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ ํ์ (0) | 2025.01.03 |
๐ง ์ธํฐํ์ด์ค (1) | 2024.11.17 |
๐ typescript ์ธํ (0) | 2024.11.03 |
๋๊ธ