반응형
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 덩크로우
- GIT
- 오라클
- draw
- JavaScript
- 발매예정
- Dunk Low
- Github
- jQuery
- Nike
- sacai
- oracle
- 드로우
- 코로나19
- dunklow
- 제이쿼리
- 주식
- 나이키
- 자바스크립트
- 리눅스
- Linux
- 덩크 하이
- 파이썬
- Python
- 리액트
- 덩크 로우
- react
- dunk high
- stockx.com
- 주식공부
Archives
- Today
- Total
Life goes slowly...
[TypeScript] 타입스크립트의 타입호환 본문
728x90
반응형
타입스크립트(TypeScript)의 타입 호환이란 타입스크립트 코드에서 특정 타입이 다른 타입과 잘 맞는지를 의미합니다.
기본적으로 자바스크립트는 객체 리터럴이나 익명 함수 등을 사용하기 때문에 명시적으로 타입을 지정하는 것보다는 코드의 구조 관점에서 타입을 지정하는 것이 더 올바른 코드 방식입니다.
interface user {
name: string;
}
inteface login {
name: string;
}
let i: user;
i = new login();
구조적 타이핑 예시
구조적 타이핑이란 코드 구조 관점에서 타입이 서로 호환되는지의 여부를 판단하는 것입니다.
interface Users {
name: string;
}
let loginName: Users;
// 타입스크립트가 추론한 y의 타입은 { name: string; location: string; } 입니다.
let loginUsers = { name: "redcow7", location: "Seoul" };
loginName = loginUsers;
Soundness(건전성)란?
타입스크립트(TypeScript)에서 기본적으로 타입 안정성을 지키려고 하는것을 말합니다. 컴파일 시점에 타입을 추론할 수 없는 특정 타입에 대해서는 '일단 안전하다'라고 보는 특성이 있습니다.
프로그래밍 언어의 설계는 단순성, 사용성, 건전성의 절충 이기 때문입니다.
Enum 타입 호환 주의 사항
Enum 타입은 number 타입과 호환이 가능하지만, Enum 타입끼리는 호환이 불가능합니다.
enum Status { Ready, Waiting };
enum Color { Red, Blue, Green };
let status = Status.Ready;
status = Color.Green; // Error
Class 타입 호환 주의 사항
Class 타입은 Class 타입끼리 비교할 때 스태틱 멤버(static member)와 생성자(constructor)를 제외하고 속성만 비교를 합니다.
class User {
handSize: number;
constructor(name: string, numHand: number) { }
}
class LoginUser {
handSize: number;
constructor(numHand: number) { }
}
let a: User;
let s: LoginUser;
a = s; // OK
s = a; // OK
제네릭 타입 호환(Generics)
Generics은 제네릭 타입 간의 호환 여부를 판단할때 타입 인자가 속성에 할당되었는지를 기준으로 판단합니다.
interface Empty<T> {
}
let x: Empty<number>;
let y: Empty<string>;
x = y; // OK, because y matches structure of x
interface NotEmpty<T> {
data: T;
}
let x: NotEmpty<number>;
let y: NotEmpty<string>;
x = y; // Error, because x and y are not compatible
참고:
728x90
반응형
'프로그래밍 > Javascript' 카테고리의 다른 글
[TypeScript] 타입스크립트의 인터페이스란? (0) | 2023.12.06 |
---|---|
[TypeScript] 타입스크립트의 고유문법 (2) | 2023.12.05 |
[TypeScript] 타입스크립트의 기초문법 (0) | 2023.12.04 |
[TypeScript] 타입스크립트는 무엇일까? (2) | 2023.12.04 |
[Javascript] 날짜 라이브러리 - moment.js (0) | 2023.02.06 |
[Javascript] 패턴형식 정규식 체크하기(전화번호, 이메일) (0) | 2021.12.21 |
[jQuery] 체크박스(checkBox)에 체크된 행(Row) 삭제하기 (1) | 2021.09.29 |
[jQuery] 시간 지연함수 - .delay() 함수 (0) | 2021.09.27 |
Comments