티스토리 뷰
728x90
// optional property 1
interface Person {
name: string;
age?: number;
}
const hello = (p: Person): void => {
console.log(`안녕하세요. 제 이름은 ${p.name}이고 나이는 ${p.age}입니다.`);
};
const p1: Person = { name: "hyun" };
const p2: Person = { name: "kim", age: 32 };
hello(p1);
hello(p2);
// optional property 2
// indexable type
interface Person1 {
name: string;
age: number;
[index: string]: string | number;
}
const p11: Person1 = {
name: "hyun",
age: 32,
job: "developer",
hobby: "soccer",
};
console.log(p11["job"], p11["hobby"]);
- 인터페이스 정의 시 ?를 붙여 있을 수도 있고, 없을 수도 있는 속성을 정의할 수 있다.
- indexable property를 이용해 이름에 상관없이 특정 타입의 속성을 받을 수 있다.
- name, age 이외에도 string으로 된 속성을 동적으로 받을 수 있다.
- 위 코드에서는 job, hobby를 정의했다.
'웹 개발 > Typescript' 카테고리의 다른 글
interface 기본 (0) | 2022.01.04 |
---|---|
function in interface (0) | 2022.01.04 |
never와 void (0) | 2022.01.01 |
unknown과 타입 가드: any의 불안정함을 대체하기 위해 (0) | 2021.12.30 |
Typescript 기본 (0) | 2021.12.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- avalanchego
- Flutter
- ERC721
- web3.js
- caver-js
- 블록 탐색기
- Hardhat
- class
- interface
- Truffle
- swr
- metamask-extension
- JWT
- eslint
- nft
- caver.js
- 이더리움
- ethers.js
- Upgradeable Contracts
- web3
- Call
- ganache
- web3-token
- typescript
- 앱 아이콘
- erc20
- 블록체인
- Proxy Pattern
- Android
- 스마트 컨트랙트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함