
이전 실습에서는 인수에 타입 지정하는 방법은 (인수:type) 방식을 배웠는데,
오늘 inteface 키워드와 typescript에서 타입 지정하는 방법을 배웠다.
interface

인수에 타입을 설정할 때, 위와 같이 (인수 : 인수의 타입) 방법으로 설정을 했다면,
오늘은 interface 키워드를 사용해 객체 안에 인수의 타입을 설정하는 방법을 배웠다.
Student 인터페이스는 문자열 타입의 name 프로퍼티와 숫자타입의 age 프로퍼티 2개를 가진다는 것을 의미한다.
[함수에 전달된 객체가 나열된 요구 조건을 충족하면, 허용]
타입 검사는 프로퍼티들의 순서를 요구하지 않고, 요구하는 프로퍼티들이 존재하는지와 프로퍼티들이 요구하는 타입을 가졌는지만을 확인
1. interface의 선택적 프로퍼티


interface에서도 선택적 프로퍼티가 가능하다!
선택적 프로퍼티를 사용하면 함수의 매개변수로 해당 값을 입력하지 않았을 때, 에러를 출력하지 않는다.
하지만 값이 들어왔을 때, 타입검사를 실시한다.
2. interface의 읽기전용

readonly 키워드를 사용하면 최초 student1 변수안에 저장된 값을 읽을 수는 있지만, 변경할 수 는 없다.
변경을 하려고 하면 위의 사진과 같은 에러가 출력되는 것을 볼 수 있다.
프로퍼티의 타입 선언의 readonly 키워드는 변수선언의 const와 비슷.
typescript-kr.github.io/pages/interfaces.html [초과 프로퍼티 검사부터 ]
TypeScript 한글 문서
TypeScript 한글 번역 문서입니다
typescript-kr.github.io
class같은 경우에는 객체지향을 배워 익숙했지만, interface같은 경우에는 타입스크립트에만 있는 키워드라 생소했다.
둘은 비슷하지만 사용하는 경우가 다르다고만 언급을 하여 찾아보았다.
stackoverflow.com/questions/40973074/difference-between-interfaces-and-classes-in-typescript
Difference between interfaces and classes in Typescript
What is the different between Typescript Interfaces and Classes? When do I use a Class? When do I use Interfaces? What are the advantages of them? I need to create some kind of types for an http-re...
stackoverflow.com
'2020-2021 > TIL' 카테고리의 다른 글
Mini-react-project2 #0 (0) | 2021.02.28 |
---|---|
Block Chain [typescript] #3 (0) | 2021.02.25 |
Block Chain [typescript] #2 (0) | 2021.02.23 |
Block Chain [typescript] #1 (0) | 2021.02.22 |
0203 (0) | 2021.02.03 |
댓글