Skip to Content
TypeScriptクックブック
book

TypeScriptクックブック

by Stefan Baumgartner
March 2025
Intermediate to advanced
422 pages
5h 51m
Japanese
O'Reilly Media, Inc.
Book available
Content preview from TypeScriptクックブック

第2章. 基本タイプ

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

さて、すべてのセットアップが終わったところで、いよいよTypeScriptを書いてみよう!最初は簡単なはずだが、すぐに自分がやっていることが正しいのか不安になる場面に出くわすだろう。インタフェースを使うべきか、エイリアス化を使うべきか。アノテーションをつけるべきか、型推論に任せるべきか。anyunknown はどうなのか?インターネット上では、これらは決して使うべきではないと言う人もいる

これらの疑問はすべてこの章で解決される。TypeScriptを構成する基本的な型を見て、経験豊富なTypeScript開発者がそれらをどのように使うかを学ぶ。TypeScriptコンパイラがどのように型にたどり着き、どのようにアノテーションを解釈するのか、その感覚をつかむことができる。

これはコード、エディター、コンパイラー間の相互作用についてだ。そして、レシピ2.3で説明するように、型階層を上下に移動することである。経験豊富なTypeScript開発者であれ、これからTypeScriptを発見する人であれ、この章では役に立つ情報を見つけることができるだろう。

2.1 効果的に注釈を付ける

問題

タイプの注釈は面倒で退屈だ。

解決策

型チェックが必要なときだけ注釈を入れる。

ディスカッション

型アノテーションとは、どの型が期待されるかを明示的に示す方法である。他のプログラミング言語では、StringBuilder stringBuilder = new StringBuilder() の冗長性によって、本当に、本当に、StringBuilder を扱っていることを確認するような、目立つものだ。 その反対は型推論で、TypeScriptはあなたのために型を割り出そうとする:

// Type inference
let aNumber = 2;
// aNumber: number

// Type annotation
let anotherNumber: number = 3;
// anotherNumber: number

Typeアノテーションは、TypeScriptとJavaScriptの最も明白で目に見える構文の違いでもある。

TypeScriptを学び始めると、期待する型を表現するためにあらゆるものにアノテーションを付けたくなるかもしれない。これは当たり前の選択のように感じるかもしれないが、アノテーションを控えめにして、TypeScriptに型を把握させることもできる。

型アノテーションは、契約書のどこをチェックしなければならないかを表現する方法である。変数宣言に型アノテーションを追加すると、代入時に型が一致するかどうかをチェックするようコンパイラーに指示することになる:

type Person = {
  name: string;
  age: number;
};

const me: Person = createPerson();

createPersonPerson と互換性のないものを返した場合、Typescript はエラーを投げる。本当に正しい型を扱っていることを確認したい場合は、このようにしてほしい。

また、この瞬間から、mePerson 型であり、TypeScript はこれをPerson.meにさらにプロパティがある場合 - たとえばprofession- TypeScriptはそれらにアクセスすることを許可しない。これは ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

効率的なNode.js

効率的なNode.js

Samer Buna

Publisher Resources

ISBN: 9798341627062Supplemental Content