typescript - 在 Typescript 中,为什么 JSX.IntrinsicElements 不像文档描述的那样工作?
问题描述
我正在尝试在服务器端使用 JSX,而不使用 React。我在这里关注关于 JSX 的打字稿文档,并将以下内容写在一个.tsx
文件中。
declare namespace JSX {
interface IntrinsicElements {
foo: any
}
}
let elt1 = <foo/>
let elt2 = <bar/>
链接的文档说:
在上面的示例中,
<foo/>
可以正常工作,但<bar/>
会导致错误...
但对我来说,它们都导致相同的错误:
类型“JSX.IntrinsicElements”上不存在属性“foo”。
“JSX.IntrinsicElements”类型上不存在属性“bar”。
解决方案
import React from "react";
declare module "react" {
namespace JSX {
interface IntrinsicElements {
foo: any
}
}
}
let elt1 = <foo/>
let elt2 = <bar/>
您的代码不起作用的原因JSX.IntrinsicElements
是取自@types/react
并重新声明命名空间不起作用。此外,如果您不导入 react ( demo ),您还会注意到您的代码将起作用。模块扩充基本上扩展了@types/react
类型。
推荐阅读
- c - 根据常量表达式的结果在指示符中选择标识符的能力会有用吗?
- c# - 为什么一个 List 返回 26 个项目,另一个返回 1 个?
- c# - xamarin.forms 十进制运算符在不同的文化中不同,不能使用文化信息
- android - 深度链接完成后显示意图选择器对话框
- matlab - 通过 Visa 从 Keysight 仪器读取数据接收缓冲区警告
- javascript - 从屏幕阅读器可访问性中隐藏父元素而不隐藏其子元素
- terraform - gitlab CI 没有在用户主文件夹中创建 kube 配置
- sql - 数据行开始和结束的 SQL
- javascript - Vue 3 传递数组警告:无关的非道具属性已传递给组件但无法自动继承
- google-cloud-firestore - Firestore 是否需要为每个查询字段组合使用单独的索引?(9 FAILED_PRECONDITION:查询需要索引。)