typescript
interface Poteto {
name: string,
age: number
}
const user: Poteto = {name:"name",age:12}
console.log(user)
const array: Array<string> = ["a","a"]
console.log(array)
このコードはTypeScriptで書かれたもので、array
という名前の変数を定義しています。この変数は、文字列(string
)の配列を格納するためのものです。
以下にコードの各部分について説明します。
-
const
: これは定数を宣言するためのキーワードです。const
で宣言された変数は再代入できません。 -
array
: これは変数の名前です。この場合、配列を格納するための変数です。 -
Array<string>
: これはTypeScriptの型注釈で、array
が文字列の配列であることを示しています。Array<string>
は、string
型の要素を持つ配列を意味します。 -
= ["a", "a"]
: これは配列の初期化です。["a", "a"]
は、2つの要素(どちらも文字列"a"
)を持つ配列を作成しています。
このコード全体をまとめると、array
という名前の定数が、2つの文字列"a"
を要素として持つ配列を初期化していることを示しています。TypeScriptの型注釈により、この配列には文字列以外の型の要素を含めることができないことが保証されています。
はい、TypeScriptでは、<Type>
という書き方はジェネリクス(Generics)を表すために使用されます。特に、配列やオブジェクトの型を指定する際に使われます。
1. 配列の例
配列の型を指定する場合、次のように書きます。
const array: Array<string> = ["a", "b", "c"];
または、次のように書くこともできます。
const array: string[] = ["a", "b", "c"];
2. ジェネリック型の例
ジェネリクスを使って、関数やクラスを定義することもできます。例えば、次のような関数を考えてみましょう。
function identity<T>(arg: T): T {
return arg;
}
const result = identity<string>("Hello");
この例では、identity
関数はジェネリック型T
を受け取り、引数の型に基づいて戻り値の型を決定します。identity<string>("Hello")
のように呼び出すことで、T
がstring
型であることを明示的に指定しています。
3. オブジェクトの例
オブジェクトの型を指定する場合も、ジェネリクスを使うことができます。例えば、次のように書くことができます。
interface KeyValuePair<K, V> {
key: K;
value: V;
}
const pair: KeyValuePair<string, number> = {
key: "age",
value: 30,
};
この例では、KeyValuePair
というインターフェースが定義されており、K
とV
という2つのジェネリック型パラメータを持っています。pair
は、key
がstring
型、value
がnumber
型のオブジェクトです。
まとめ
<Type>
という書き方は、TypeScriptにおけるジェネリクスを表すもので、配列やオブジェクト、関数などの型を柔軟に指定するために使用されます。
interface Poteto {
name: string,
age: number
}
const user: Poteto = {name:"name",age:12}
console.log(user)
const array: Array<string> = ["a","a"]
// 上と一緒
const array2: string[] = ["array","string"]
// この下のは無理
// const array3: Array<string,number> = ["string",11]
// こっちが正しい
const array3: [string,number] = ["string",11]
console.log(array,array2,array3)