Skip to main content

Introduction

พยายามอธิบาย Type โดย pseudo-code

ผมขอเรียกว่า "Type pseudo-code" ละกัน

อ่าน Syntax ได้จาก Type Expression

Map type of typescript to JavaScript Type

คิดว่า Type คือ Data (Types are just data)

TypeScriptJavaScript
LiteralPrimitive
PrimitivePrimitive
UnionSet or Object
IntersectionSet or Object
Data structureSet or Object

Type pseudo-code

Map Syntax

type MyRecord<K extends keyof any, T> = {
[P in K]: T;
};
  • Function name: MyRecord
  • Input: K extends keyof any and T
  • Output:
    {
    [P in K]: T;
    }
// Type pseudo-code
function MyRecord(K: keyof any, T: unknown){
if(isPrimitive(K))
return { K: T };
return typeMap(K, [P, T] => ({
P: T
}));
}

// keyof any === 'string | number | symbol'

Type pseudo-code Utility

// This is not TypeScript Syntax 
declare function isPrimitive<T>(Object: T): boolean;

declare function typeMap<T>(Object: T, Callback: [Key, Value] => );