![]() |
1
91
有几种解决方案,最简单的一种是仅使用类型断言:
还可以为创建别名
|
![]() |
2
30
基于提香·塞尔尼科娃·德拉戈米尔的回答和评论
显式断言
讨论
让我们看看如果在默认情况下,按照OP“字面”的要求键入Object.keys会发生什么:
类型断言正是针对这种情况——当程序员有额外的知识时。如果你知道的话
|
|
3
6
看到了吗 https://github.com/microsoft/TypeScript/issues/20503 .
将保留密钥类型而不是
|
![]() |
4
4
我认为正确的方法是 创建具有可选属性的接口 并在运行时设置(或不设置)这些属性。。。
注:基元类型(Object)的Object.keys/Object.entries将返回never[]和[never,never][],而不是普通字符串[]和[string,any][]。如果有人知道一个解决方案,请随时告诉我的意见,我会编辑我的答案
所以, 小心使用 |
![]() |
5
2
你可以用
Extract
实用程序类型,使您的参数仅与
尽管如此,大多数开发人员可能会认为将数字作为键是一个糟糕的设计决策/需要修复的bug。 |
![]() |
6
1
如果您可能在monorepo中工作,或者从10年的角度来看,您可能更喜欢基于导入的方法(无论如何,在vscode中导入是相当容易的,字面上就是点击
把这个放在什么地方然后打字
全局
如果你喜欢globals,就加上这个
|
![]() |
7
-1
作为一种可能的解决方案,您可以使用
|
![]() |
Devmix · 如何在new Map()中保存状态? 1 年前 |
![]() |
Luisus · 从Prisma 5客户端提取类型 1 年前 |
|
Rostys · TypeScript:使用类型转换进行类型保护 1 年前 |
![]() |
Anne · 类型不一致的对象的TypeScript类型定义 1 年前 |
|
tuimui · 使用react+ts通过道具传递数据 1 年前 |