如何在 React 和 TypeScript 项目中使用 types.d.ts 文件

Posted

技术标签:

【中文标题】如何在 React 和 TypeScript 项目中使用 types.d.ts 文件【英文标题】:How using types.d.ts file in React & TypeScript project 【发布时间】:2020-08-17 06:15:08 【问题描述】:

我有 React 和 TypeScript 项目。 这是我在某些组件中的文件夹结构,例如:

 - ComponentFolder
  - index.tsx
  - types.d.ts
  - ChildComponent
    - index.tsx

我知道如果我将我的类型放在组件目录根目录下的 types.d.ts 文件中,我可以在该目录的 childComponents 中使用这些类型。

所以我尝试了;

我的 types.d.ts 文件:

export type CommonProps = 
  openItem: string;
  getValue: (e: React.MouseEvent) => void;
;

在子组件中:

import * as React from "react";

const ChildComponent: React.FC<CommonProps> = (props) => 
  return (
    <div>
      props.openItem
    </div>
  );
;

export default ChildComponent;

但出现错误:

cannot find CommonProps error.

我如何知道目录中是否有一些文件 d.ts 我可以在此目录中使用这些类型而无需导入。

我在哪里弄错了?

【问题讨论】:

【参考方案1】:

删除export 关键字。

type CommonProps = 
  openItem: string;
  getValue: (e: React.MouseEvent) => void;
;

【讨论】:

或从它的位置导入类型 @felixmosh 不是真的,关于 types.dev.ts 的全部目标是能够使用接口而不需要导入它。 我在哪里可以找到这方面的文档?我的问题是,如果我尝试导入类型,它也会停止工作。使用 import 或 export 关键字会破坏自动类型发现。 找到解释:***.com/a/51114250/124416

以上是关于如何在 React 和 TypeScript 项目中使用 types.d.ts 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在带有 Typescript 的 React 项目中组织类型定义

在react typescript项目中如何使用没有@type定义的npm包

如何将 React 路由器功能转换为 Typescript?

如何在带有 Typescript 项目的 React Native 中使用 AWS Amplify?

如何使用 useState 在点击时显示/隐藏移动导航栏? React + TypeScript + Tailwind 项目

如何在带有 typescript 项目的 react js 中使用 .env 文件?