typescript - TypeScript - 为自定义类名使用预定义的名称
问题描述
我们可以使用 TypeScript 中的预定义名称来命名自定义类/接口吗?如果自定义类名与 TypeScript 中的预定义名称冲突,是否存在可能导致错误的用例?
例如 - 我可以创建一个名为 RequestInfo 的自定义类,而 TypeScript 已经有一个 RequestInfo 类型 ->type RequestInfo = Request | string;
吗?
解决方案
您不能将 TypeScript 中的任何预定义名称用作自定义类/接口/类型。原因是类声明创建了一个构造函数以及一个类型定义。这意味着我可以做这样的事情:
class Hero {}
const myHero: Hero = new Hero();
const somethingElse: Hero & string = '';
因此,当您尝试重新定义预定义类型时,TypeScript 编译器会发出错误,因为类型通常是为类生成的。
但是,如果你想在你的模块中有多个接口声明,TypeScript 将使用声明合并概念,它只是将两个接口合并为一个。
interface Hero { x!: number; }
interface Hero { y!: number; }
推荐阅读
- python - 气流浏览器 UI 未检测到导入的模块
- scala - PlayFramework - 使用 sbt 创建 Scala 种子模板
- python - 使用python进行网页抓取分页时遍历多个页面
- reactjs - 尽管没有错误,但 D3 图表不显示图表 (REACT)
- javascript - 角度不服从css
- haskell - 带有成分查找和更新的地图记录?
- tcp - TCP校验和是否可以在最终计算点被纠正,即使它在之前的数据路径中是错误的
- r - R帮助解决问题
- javascript - 为什么有些回调函数只用“setTimeout(this.functions, 1000);”调用它们?但其他人需要有箭头功能才能工作
- r - 基础 r 中的共享标题、轴标签和图例,带有布局