diff --git a/packages/components/src/components/timeline/index.js b/packages/components/src/components/timeline/index.ts
similarity index 57%
rename from packages/components/src/components/timeline/index.js
rename to packages/components/src/components/timeline/index.ts
index f269c192f191..05627ed51e75 100644
--- a/packages/components/src/components/timeline/index.js
+++ b/packages/components/src/components/timeline/index.ts
@@ -1,4 +1,4 @@
-import Timeline from './timeline.jsx';
+import Timeline from './timeline';
import './timeline.scss';
export default Timeline;
diff --git a/packages/components/src/components/timeline/timeline.jsx b/packages/components/src/components/timeline/timeline.jsx
deleted file mode 100644
index 910e5331ea7e..000000000000
--- a/packages/components/src/components/timeline/timeline.jsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import React from 'react';
-import classNames from 'classnames';
-import Text from '../text';
-
-const Oval = ({ children }) => {
- return (
-
-
- {children}
-
-
- );
-};
-
-const Timeline = ({ children, disabled_items, ...props }) => {
- return (
-
- {children.map((child, idx) => (
-
-
{idx + 1}
-
-
- {child.props.item_title}
-
-
{child}
-
-
- ))}
-
- );
-};
-
-const Item = ({ children, ...props }) => {children}
;
-
-Timeline.Item = Item;
-
-export default Timeline;
diff --git a/packages/components/src/components/timeline/timeline.tsx b/packages/components/src/components/timeline/timeline.tsx
new file mode 100644
index 000000000000..f924b0304357
--- /dev/null
+++ b/packages/components/src/components/timeline/timeline.tsx
@@ -0,0 +1,50 @@
+import React from 'react';
+import classNames from 'classnames';
+import Text from '../text';
+
+type TOval = {
+ children: number;
+};
+type TItem = React.HTMLAttributes & { item_title: React.ReactNode };
+type TTimeline = React.HTMLAttributes & { disabled_items?: number[] };
+
+const Oval = ({ children }: TOval) => {
+ return (
+
+
+ {children}
+
+
+ );
+};
+
+const Timeline = ({ children, disabled_items, ...props }: React.PropsWithChildren) => {
+ return (
+
+ {Array.isArray(children) &&
+ children.map((child, idx) => (
+
+
{idx + 1}
+
+
+ {child.props.item_title}
+
+
{child}
+
+
+ ))}
+
+ );
+};
+
+const Item = ({ children, ...props }: React.PropsWithChildren) => {children}
;
+
+Timeline.Item = Item;
+
+export default Timeline;