타입스크립트 쿡북!

타입
예시
Property
Property 1

Generic Class

예제1

Generic Function

예제1

Generic Type

예제1

type Context = object; type Context2<T = object> = T; interface Fruit { apple : number } const context: Context = () => { } const context2: Context2 = () => { } const context3 : Context2<Fruit> = { apple : 3 }
TypeScript
복사
* 일단 typescript에서는 함수도 object로 인식하는거 같다.
Context 와 Context2는 모두 Object타입이다.
하지만 Context2는 어떤 Object인지 추후에 지정해줄 수 있다.
context2는 어떤 타입인지 굳이 명시해주지 않았기 때문에 Object는 뭐든 가능했지만
context3는 Fruit타입을 명시했기 때문에 그에 따라야 한다.

Class

예제1

Function

예제1

Value in Object

예제1

interface OptionsData { validationRules?: ReadonlyArray<(ctx: ValidationContext) => ASTVisitor> | null } const option: OptionsData = { validationRules: [(ctx: ValidationContext) => { return { AST : "AST" } }] }
JavaScript
복사
Array에 Function이 인자로 들어 갈때
interface OptionsData { customValidateFn?: ( (schema: GraphQLSchema, documentAST: DocumentNode, rules?: ReadonlyArray<ValidationRule> ) => ReadonlyArray<GraphQLError> ) | null } const option: OptionsData = { customValidateFn: (schema, documentAST, rules) => { return [ {Error : "error"} ] }, }
JavaScript
복사
Function이 들어 갈 때 ( )괄호를 사용하여 타입 지정
graphql-express index

Others...

예제 1

export type Scalars = { ID: string, }; export type Book = { id: Scalars['ID'], };
TypeScript
복사
객체에서 squreBraket을 이용하여 값 가져오기

예제 2

type Maybe<T> = T | null; // type Menu = Menu | null; type MenuCreatePayload = { menu?: Maybe<Menu>, users?: Array<Maybe<User>>, };
TypeScript
복사
특정 타입이 null을 가질 때 제네릭하게 사용 가능