当前位置: 首页 > 知识库问答 >
问题:

typescript - 这个地方 tslint 不能识别,请问如何修改?

颛孙建业
2023-04-27

image.png

注意 <Tag 处报错

TS2322: Type '{ children: any; 'data-slate-node': "element"; 'data-slate-inline'?: true | undefined; 'data-slate-void'?: true | undefined; dir?: "rtl" | undefined; ref: any; style: CSSProperties; }' is not assignable to type 'IntrinsicAttributes'.   Property 'children' does not exist on type 'IntrinsicAttributes'.

按理说这里的 Tag 类型是 'h1'|'h2'|'h3'|'h4'|'h5'|'h6',但是他只识别成了 string

我如果手动为 Tag 添加声明就不会报错
image.png

这里能让他自己识别么?

共有1个答案

宗政财
2023-04-27

这里发生的是widening。例如

const str = "Hello"

虽然定义为"Hello",但自动推断出来的类型是string

我们可以加上as const来禁用这种行为。文档

问题中的代码为例:

type Level = 1 | 2 | 3 | 4 | 5 | 6;

const Component = (level: Level) => {
  const Tag = `h${level}` as const;
  const TagBad = `h${level}`;
};

image.pngimage.png

 类似资料:
  • 本节将介绍怎样在一个 TypeScript 项目中使用 ESLint 规范,至于为什么不推荐使用 TSLint,可以看下这篇文章:TypeScript 官方已经决定全面采用 ESLint,ESLint 的 TypeScript 解析器也成为独立项目,专注解决双方兼容性问题。 所以,同开发前端项目一样,熟练掌握 ESLint 规则,也成了 TypeScript 项目开发的必要条件。 1. 慕课解释

  • 我使用的是vite构建工具创建的vue+ts项目我也已经添加了less和less-loader 也已经配置了less为什么还是无法识别less文件

  • 这种地图效果是叫什么?具体该使用哪种技术实现,如何实现,有具体的示例吗?

  • 有25种类型的空白。在下面的代码中显示,25种类型中有4种在Java中不被视为空白。为什么? 参考-https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/character.html#IsWhitespace(char)

  • 本文向大家介绍请问MySQL的端口号是多少,如何修改这个端口号相关面试题,主要包含被问及请问MySQL的端口号是多少,如何修改这个端口号时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 查看端口号: 使用命令show global variables like 'port';查看端口号 ,mysql的默认端口是3306。(补充:sqlserver默认端口号为:1433;oracle默认端口号

  • 我已经将我的站点部署到heroku,现在我正试图将我的本地数据库向上推,但不断得到这个错误: 未知数据库: heroku配置:获取DATABASE_URL 并使用返回的值。我尝试重置DATABASE_URL,但仍然得到相同的错误。如有任何帮助,不胜感激,谢谢!