質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

245閲覧

TypeScriptで型の合成

2_34_koki

総合スコア67

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2020/07/09 11:06

TypeScriptの型の合成で下記のようなコードを想定します.

export type Parent = { categoryName: string; categoryId: string; categoryUrl: string; } export type Child = { categoryName: string; categoryId: string; categoryUrl: string; categoryId: string, } //ChildのところでParentの型を拡張したい export type Parent = { categoryName: string; categoryId: string; categoryUrl: string; } //こんな感じでかけると思ってた. export type Child = { Parent; categoryId: string, }

Childのところで3つの型が同一なので拡張した形で書きたいのですが,うまくいきません.typeとnamespaceとinterfaceを使い分けるみたいなことが書いてあったのですが,いまいちしっくりきません.
もし,解決策をご存知でしたらよろしくお願いします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Typeの交差型か、interfaceの継承を使えばできると思います。

typescript

1// 交差型を使った例 2 3type Parent = { 4 categoryName: string; 5 categoryId: string; 6 categoryUrl: string; 7} 8 9type Child = Parent & { 10 childId: string, 11} 12 13 14// interfaceの継承を使った例 15 16interface Category { 17 categoryName: string; 18 categoryId: string; 19 categoryUrl: string; 20} 21 22interface Parent extends Category { 23 parentId: string 24} 25 26interface Child extends Category { 27 childId: string 28}

投稿2020/07/09 11:22

RyoKawamata

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問