์ธํฐํ์ด์ค
: ์ํธ ๊ฐ์ ์ ์ํ ์ฝ์ ํน์ ๊ท์น
- ๊ฐ์ฒด๋ objectํ์ ์ผ๋ก ๋ช ์
- object์๋ ํน์ ์์ฑ ๊ฐ์ ๋ํ ์ ๋ณด๊ฐ ์์
- property๋ฅผ ์ ์ํด์ ๊ฐ์ฒด๋ฅผ ํํํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ ์ธํฐํ์ด์ค ์ฌ์ฉ
let user:object; //๊ฐ์ฒด๋ objectํ์
์ผ๋ก ๋ช
์
user={
name:'xx'
age:30
}
console.log(user.name) //์ค๋ฅ๋ฐ์ -> object์๋ ํน์ ์์ฑ ๊ฐ์ ๋ํ ์ ๋ณด๊ฐ ์์
์ธํฐํ์ด์ค ์ฌ์ฉ
- optional: ?๋ก ์์ฑ
- readonly: ์ฝ๊ธฐ ์ ์ฉ ์์ฑ(์์ ๋ถ๊ฐ๋ฅ)
- [key]:value ๋ก ์ค์ ํ์ฌ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅ
type Score='A'|'B'|'C'|'F';
interface User{
name: string;
age:number;
gender? : string; //gender๋ ์ฌ์ฉํด๋ ๋๊ณ ์ํด๋ ๋๋ optional -> ?๋ก ์์ฑ
readonly birthYear:number; //readonly๋ ์ฝ๊ธฐ ์ ์ฉ ์์ฑ -> ์์ ํ ์ ์์(์์ฑ์์๋ง ํ ๋น ๊ฐ๋ฅํ๊ณ ๊ทธ ์ดํ์๋ ๋ณ๊ฒฝ ๋ถ๊ฐ)
//๋ฌธ์์ด ์ธ๋ฑ์ค ์๋ช
์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
[grade:number]:string; //number๋ฅผ key๋ก ํ๊ณ , string์ value๋ก ์ค์ ํ์ฌ, ์ฌ๋ฌ ๊ฐ ๊ฐ๋ฅ
// [grade:number]:Score; //Score์ ์๋ ๊ฐ ์ด์ธ์๋ ์
๋ ฅ ๋ถ๊ฐ๋ฅ
}
let user: User= {
name:'xx',
age:30,
birthYear: 2000,
}
user.age=10;
user.gender="male";
console.log(user.age)
์ธํฐํ์ด์ค๋ก ํจ์ ์ ์ํ๊ธฐ
- (์ธ์ ๊ฐ): ๋ฐํ ๊ฐ
interface Add{
(num1:number, num2:number): number; //(์ธ์ ๊ฐ):๋ฐํ ๊ฐ
}
const add: Add=function(x,y){
return x+y;
}
add(10,20);
interface IsAdult{
(num:number): boolean;
}
const isAdult: IsAdult=(x)=>{
return x>19;
}
์ธํฐํ์ด์ค๋ก ํด๋์ค ์ ์ํ๊ธฐ
- ์ธํฐํ์ด์ค๋ก ํด๋์ค ์ ์ ํ ๋, implements ์ฌ์ฉ
- ์ธํฐํ์ด์ค ํ์ฅ ํ ๋ extends ์ฌ์ฉ
//implements
interface Car{
color: string;
wheels:number;
start():void;
}
class Bmw implements Car{
color;
wheels=4;
constructor(c:string){
this.color=c;
}
start(){
console.log('go...')
}
}
const b=new Bmw('green');
//extends ์ธํฐํ์ด์ค ํ์ฅ ํ๊ธฐ
interface Benz extends Car{
door:number;
stop():void;
}
class Benz implements Car{
color;
wheels=4;
constructor(c:string){
this.color=c;
}
start(){
console.log('go...')
}
}'ํ๋ก ํธ์๋ > TypeScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์ ๋ค๋ฆญ (0) | 2023.01.03 |
|---|---|
| ํด๋์ค (0) | 2023.01.03 |
| ๋ฆฌํฐ๋ด, ์ ๋์จ/๊ต์ฐจ ํ์ (0) | 2023.01.03 |
| ํจ์ (0) | 2023.01.03 |
| TypeScript ์ฌ์ฉ ์ด์ ์ ๊ธฐ๋ณธ ํ์ (0) | 2023.01.03 |