diff --git a/src/app.ts b/src/app.ts index 1334155..53c3469 100644 --- a/src/app.ts +++ b/src/app.ts @@ -26,6 +26,7 @@ import { p30 } from "./courses/p30"; import { p31 } from "./courses/p31"; import { p32 } from "./courses/p32"; import { p33 } from "./courses/p33"; +import { p34 } from "./courses/p34"; /* p01(); p02(); @@ -110,5 +111,6 @@ export class Storage implements StorageCls { p29(); p30(); p31(); -p32(); */ -p33(); +p32(); +p33(); */ +p34(); diff --git a/src/courses/p34.ts b/src/courses/p34.ts new file mode 100644 index 0000000..1c6d114 --- /dev/null +++ b/src/courses/p34.ts @@ -0,0 +1,43 @@ +const p34 = () => { + type Person = { + name: string; + age: number; + text: string; + }; + + // Readonly: 传进来的类型全部转成readonly + type Read = { + readonly [P in keyof T]: T[P]; + }; + + type man = Read; + type man1 = Readonly; + + // PropertyKey: string | number | symbol + type Rec = { + [P in K]: T; + }; + + type key = "A" | "B" | "C"; + + type man2 = Rec; + + let obj: man2 = { + A: { + name: "小满", + age: 22, + text: "真男人", + }, + B: { + name: "小满", + age: 22, + text: "真男人", + }, + C: { + name: "小满", + age: 22, + text: "真男人", + }, + }; +}; +export { p34 };