Open3

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)の配列を格納するためのものです。

以下にコードの各部分について説明します。

  1. const: これは定数を宣言するためのキーワードです。constで宣言された変数は再代入できません。

  2. array: これは変数の名前です。この場合、配列を格納するための変数です。

  3. Array<string>: これはTypeScriptの型注釈で、arrayが文字列の配列であることを示しています。Array<string>は、string型の要素を持つ配列を意味します。

  4. = ["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")のように呼び出すことで、Tstring型であることを明示的に指定しています。

3. オブジェクトの例

オブジェクトの型を指定する場合も、ジェネリクスを使うことができます。例えば、次のように書くことができます。

interface KeyValuePair<K, V> {
    key: K;
    value: V;
}

const pair: KeyValuePair<string, number> = {
    key: "age",
    value: 30,
};

この例では、KeyValuePairというインターフェースが定義されており、KVという2つのジェネリック型パラメータを持っています。pairは、keystring型、valuenumber型のオブジェクトです。

まとめ

<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)

Playground Link