typescript - 如何使用代理类型为属性 [name , age] 设置值
问题描述
我试图弄清楚如何使用 set () 为 [age, name] 属性赋值,但它向我显示了一个错误,您可以在下面看到。
如果有办法纠正错误,我将不胜感激。
索引.ts
interface Proxy<T>{
get(): T;
set(value: T): void;
}
type Proxied<T> = {
[P in keyof T]: Proxy<T[P]>;
}
interface Cat{
age: number;
name: string;
}
type PC = Proxied<Cat>;
const doc: PC = null;
doc.age.set(1);
console.log(doc.age.get())
错误
C:\Users\c\Desktop\typetify\src\typetify.ts:3
set(value: T): void;
^
TypeError: Cannot read property 'age' of null
at Object.<anonymous> (C:\Users\c\Desktop\typetify\src\typetify.ts:3:5)
at Module._compile (internal/modules/cjs/loader.js:1176:30)
at Module.m._compile (C:\Users\c\Desktop\typetify\node_modules\ts-node\src\index.ts:858:23)
at Module._extensions..js (internal/modules/cjs/loader.js:1196:10)
at Object.require.extensions.<computed> [as .ts] (C:\Users\c\Desktop\typetify\node_modules\ts-node\src\index.ts:861:12)
at Module.load (internal/modules/cjs/loader.js:1040:32)
at Function.Module._load (internal/modules/cjs/loader.js:929:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at main (C:\Users\c\Desktop\typetify\node_modules\ts-node\src\bin.ts:227:14)
at Object.<anonymous> (C:\Users\c\Desktop\typetify\node_modules\ts-node\src\bin.ts:513:3)
[nodemon] app crashed - waiting for file changes before starting...
解决方案
推荐阅读
- multithreading - 在 go 例程中更新后未返回更新的值
- java - java 程序如何发现自己经历了长时间的 GC 暂停?
- python - JSON file will not completely load into a python file
- javascript - 我在为 vue 数据对象赋值时遇到了一些问题
- erlang - 在更好的erlang中,处理字典或其状态
- python - How do I change all column values into a same value in Python's 2D-List?
- database - 抢劫数据库最大区别查询与sqlite
- inno-setup - 使用 Inno-Setup 将特定任务的文件编译为附加安装文件(setup.exe、files.bin)?
- python - 用于在 Python 中过滤对象的用户界面
- linux - 如果 file_name 为空,为什么 [ -f file_name] OR [ -e file_name ] 返回 True?