YuJianrong

YuJianrong

RedNax
🏢  SAP.iO / Software Engineer
V2EX 第 17886 号会员,加入于 2012-03-10 22:44:15 +08:00
根据 YuJianrong 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
YuJianrong 最近回复了
范型函数里面的报错一般都不重要,就不要管了,any 吧……
第一个你需要类似这样的 helper 类型:
type Property2<P> = P extends keyof MyInterface ? {propertyName: P; propertyValue: MyInterface[P]}: never;

详见 https://www.typescriptlang.org/play?ssl=33&ssc=107&pln=33&pc=1#code/JYOwLgpgTgZghgYwgAgLIE8CS5rycgbwChlkAHKAezOjHQEEAuZAZzClAHNkAfZEAK4AbIQG4S5KjSh0AQs0EBbAEbRe-YWIkVqtdAGFmAZUqKIAeTAALaNkixEKPoJHjSO6XQAizeiErW0JY2UHa4juouWgC+RESg9ngoJmbBtjgO+MTuUnoAGsxsHCDczppukroy6ACaCgIqamWuRLHxGUnIfgEhaaEdEdmVnuiohexckeXaudUAcvWNUFMtbQD0a8gIlCBsyAJkACZwkAAKs3TIALzIADxEG6TIACoA0hDoyBAAHpAghyxkABrD6UGBoLADJAAGgem1IzwAanAhAIUD8-gCIWFMhAANpvD4AXThyAAfAAKUmkSgcTigFHmZQAKwgCDAzAwOKSsMeOSqdDmcDMzEJ6F58OGemRqIgoplaNJAEpOZDEhErmTCNTkI8AHQG1imFAJaAgFHIISUekIHVQCBgARQECEZAGvW04D081CJms9nQ5B4jx6IVmInMEPVBUoaLiR5xuKPba7MDIABuKIAjKruRrCNFkHBAXAQOh45sU3sQBAAO5Z677I4nCDnAXoCmZoRZwMAIijdHovb7LGNrAmJV7SvERDoNGQbZGACZbqctTdTl9fhB-oCQegwdioSgAPyEAfoMNyheiKXRlFo3PHvGnInRBQQdPQGcwAQgdnADsTbHGcFzABALBLhSnreoyLJshyR7qjCd5gOBLDMIuegrvuh5cseZJ4kSSoEG0VZpl2S5PshKA3KRRYlmW4jkfwdZLo2Bwga2YEQVBlGBniEhDPyIxXsw-YXAww4SCJ0oPtevajmY47FJw0mkNEsKkMJqGXsKCkXrI6lPBeMbMFmAAMWnIJpQkybpYnIBJ7b6MZsn3rKzAEBeBS9lmw66XUyBZrZGmwsRM5EEAA


第二个更复杂点,我的做法是这样的 helper 类型:
type NonNull<T> = T extends null ? never : T;
type IsSubjectObjectKey<K extends keyof MyInterface> = NonNull<MyInterface[K]> extends object ? K : never;
type GetSubjectObjectKey<K extends keyof MyInterface> = K extends IsSubjectObjectKey<K> ? K : never

const updateSubProperty = <
TTop extends GetSubjectObjectKey<keyof MyInterface>, // Should be restricted to some "object" only properties, but how?
TSub extends keyof (NonNull<MyInterface[TTop]>),
TValue extends NonNull<MyInterface[TTop]>[TSub]
>(

注意你的类型中含|null 需要去掉。

详见 https://www.typescriptlang.org/play?ssl=26&ssc=3&pln=18&pc=1#code/JYOwLgpgTgZghgYwgAgLIE8CS5rycgbwChlkAHKAezOjHQEEAuZAZzClAHNkAfZEAK4AbIQG4S5KjSh0AQs0EBbAEbRe-YWIkVqtdAGFmAZUqKIAeTAALaNkixEKPoJHjSO6XQAizeiErW0JY2UHa4juouWgC+RESg9ngoJmbBtjgO+MTuUnoAGsxsHCDczppukroy6ACaCgIqamWuRLHxGUnIfgEhaaEdEdmVnuiohexckeXaudUAcvWNUFMtbXQ0yHOUIHOaADwAKgB8yAC8yAfIEAAekCAAJiwaIsgA-PwQAG5qzAfi6yhMCwjAJlAArCAIMDmcGQsAAaQg6D28KutwgDyeAGskZQYGgsAMkCdzlsdvsMGFMhAANrwgC6Jxud0eyEosKhb2QqIUX2g-3QGwA4hAwCCOdCJYjkajmRjWTj0HiCVSkiTuWiWU8geKIVCYXqEUiUSd3jyPt8oHEENs2MgBGR7nBIOKAAqzOhnZB7CQHA7UTXyp4isWgw0GuHSvaK5WUokQI4AGmQAHoU8gjFZKMJ7shVMgoBAisAoRBc2BKKxTCgAETsw01tkgIToYa0YBF5PKARgZBZgDur194sDmOQMfxAAoybsRHs44lHDS-dRGQBKRO+gBqcCEAhQcrHM4phMXSGX-rIjOX4vpRCOk4klA4nFAu4jUOYC-CSE3pArZDulUdC-Jef6sKCQEjL84rgZ8u77r8O57hARBrmcJzENE4hEDaIB2vBQhfqeP4oOcBDRMgcBPHAIDoOIDpOi6kEeugk6EcmNYeHo+g1px3HVHkfHIDWLDVqwEwlDWa4MY6zoQG6rHsbu-GsbxqnAbUwkAEwAAwyUQjHyYpmnKUIGkjF4wlcaxqDCQA5Hp9kyUAA
第一个你需要类似
2019-08-28 23:51:26 +08:00
回复了 RainNiuBi 创建的主题 问与答 最近在思考一个终极问题
中国还是太资本主义了。
先不说社会主义欧洲,即使是后资本主义的美帝,打广告说只招 35 岁以下恐怕也会不会被告到破产……
2019-07-27 09:31:38 +08:00
回复了 a132811 创建的主题 程序员 目前支持 ts 最好的 前端框架是 angular 吗?
vue2.x 写 TS 只有用 tsx (也就是说不用 SFC )和一个第三方的 helper 库才能比较舒服(体验和写 react 差不多了)。SFC 的话只有比较有限的支持,现在 vetur 也支持在模版中 parse TS 类型所以还行,但貌似 CLI 仍不支持(可能会跟进)。
react 的话其实用了 Hook 后和 TS 结合相当完美,redux 的话就别扭一点不过也还好,最新版 redux 也有官方 hooks 了,其他的第三方库就不一定了。UI 库用 antd 的话也会很爽,毕竟现在 antd 是用 ts 写的。
2019-06-16 13:27:44 +08:00
回复了 dunhanson 创建的主题 程序员 RESTFUL API URL 特殊字符的问题
不过你一定要放 url 里,把 base64 两个特殊的符号转一下即可: https://stackoverflow.com/a/5835352
当然我不觉得这种信息放 url 是个好主意(甚至包括放 query )
2019-06-15 00:07:36 +08:00
回复了 aoscici2000 创建的主题 Sublime Text Sublime 写 Vue 有没有提示补全的插件
只建议早点换成 vue。
只说一点:vetur 是官方支持的。
有啊,https://www.npmjs.com/package/fast-array-diff
用于浏览器需要 browserify 转一下
几年前我也和这里大多数人一样觉得 nodejs 不堪重用只能小打小闹(我还是做前端的)。
结果这两年下来参与了数个(公司内) startup 项目,有类 google doc 的实时文档项目管理;有做会议辅助网站;有招聘类辅助网工具;有 LBS 提供商店选址服务,后台全都是 nodejs,只能说……真香……

有三个东西彻底改变了 nodejs 的地位,使得这东西成为我们这边的推荐选择:
1. k8s
2. TypeScript
3. async/await
2019-05-30 22:51:05 +08:00
回复了 jiangxinlingdu 创建的主题 程序员 程序员 vim 用得多吗?
用 vim 写了多年代码,贡献过 windows 上的 bugfix,参与过插件开发,然鹅……现在转 vscode 了……
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2343 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 15:31 · PVG 23:31 · LAX 08:31 · JFK 11:31
Developed with CodeLauncher
♥ Do have faith in what you're doing.