TypeScript #1 - TypeScript for JavaScript Programmers
타입스크립트 공부를 시작했다.
여기저기를 찾아보다가 공식 handbook 이 가장 좋은 것 같아서 이를 바탕으로 공부했다.
https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html
모든 정보는 위의 사이트에 있습니다.
-
Types by Inference
- 타입 추론 지원
-
타입 정의
const user = {
name: "Hayes",
id: 0,
};
interface User {
name: String;
id: number;
}
const user: User{
name: "Hayes",
id: 0.
}
// 인터페이스에는 세미콜론이 있습니당
class UserAccount {
name: string;
id: number;
constructor(name: string, id: number) {
this.name = name;
this.id = id;
}
}
const user: User = new UserAccount("Murphy", 1);
function getAdminUser(): User {
//...
}
function deleteUser(user: User) {
// ...
}
-
타입 생성
새로운 타입을 만들 수 있다.
Unions, Generics 를 이용해서 생성
Union
type MyBool = true | false
type WindowStates = "open" | "closed" | "minimized";
type LockSates = "locked" | "unlocked";
type OddNumbersUndererTen = 1 | 3 | 5 | 7 | 9;
function getLength(obj: string | string[]) {
return obj.length;
}
- typeof 로 확인
function wrapInArray(obj: string | string[]) {
if (typeof obj === "string") {
return [obj];
// ^ = (parameter) obj: string
} else {
return obj;
}
}
Generics
interface Backpack<Type> {
add: (obj: Type) => void;
get: () => Type;
}
// This line is a shortcut to tell TypeScript there is a
// constant called `backpack`, and to not worry about where it came from.
declare const backpack: Backpack<string>;
// object is a string, because we declared it above as the variable part of Backpack.
const object = backpack.get();
// Since the backpack variable is a string, you can't pass a number to the add function.
backpack.add(23);
// Argument of type 'number' is not assignable to parameter of type 'string'.
-
Structural Type System
- 두개의 객체가 같은 모양을 갖고 있다면 두개의 객체는 같은 타입으로 여긴다.
Author And Source
이 문제에 관하여(TypeScript #1 - TypeScript for JavaScript Programmers), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@uniqueimaginate/TypeScript-1-TypeScript-for-JavaScript-Programmers저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)