第2クラス
10145 ワード
宣言タイプスクリプトの変数
タイプスクリプトでは、JavaScriptと同じ方法で変数を宣言できます.
const
、let
、var
です.次のコードを見てみましょうか?
function outer() {
let score = 0;
score = 30;
score = "30";
}
javascriptでは、これは正常に動作するコードのように見えます.ただし、typescriptでは、最初に0を宣言すると、
score
のdataType
がnumber
にキャプチャされ、文字列「30」が入力されると、赤い線が出力されます.ただし、変数に値が指定されていない場合、デフォルトでは
any
となりますので、任意の値を入力できます.function outer() {
let score; //아무 타입도 지정이 안되어서 any타입
score = 30;
score = "30";
}
しかし、anyタイプを指定した場合、なぜタイプスクリプトを使用しなければならないのでしょうか.
を選択します。
上記の自動位置決めタイプに加えて、直接タイプを指定することもできます.
function outer() {
let score:number; //score의 타입은 number!
score = 30;
score = "30";
}
このようにタイプを指定する方式をタイプAnnotationと呼ぶ.constのような場合、
const score = 100;
は常に初期化値が必要なので、別のタイプを指定する必要はなく、タイプが自動的に定義されるのではないでしょうか.データ型
JAvascript(es 6)は6種類のオリジナルタイプ、1種類のリファレンスタイプ、計7種類のDataTypeをサポートしていますよね?
まず
let
で変数を宣言し、タイプを指定します.let numValue:number;
let stringValue:string;
let booleanValue:boolean;
let undefinedValue:undefined;
let nullValue:null;
let objValue:object;
let symbolValue:symbol;
number
numValue = 3.3; //실수도 담을 수 있다.
numValue = ""; //문자열은 error
string
stringValue = "hello"; //singlq quoto
stringValue = "hello"; //double quoto
stringValue = `hello`; //template literal
boolean
booleanValue = true;
undefined & null
undefinedValue = null;
undefinedValue = undefined;
nullValue = undefined;
nullValue = null;
undefinedとnullはすべてのタイプのサブタイプであるため、すべてのタイプに割り当てることができます.子タイプは、親タイプによって定義された変数に割り当てることができます.
numValue=null
すべてのタイプの親タイプはany
であり、すべてのタイプはany
に割り当てることができます.obj
objValue = {name: "jay"};
objValue = {};
objValue = new String(33); //객체가 반환되기 때문에 가능
パターン内のタイプ定義
アレイのタイプは、次のように定義できます.
let nameList: string[];
let nameList2<string> //제네릭 사용방식
string[]
:文字列配列nameListは文字列からなる配列であるため、数値を入力すると次のエラーが表示されます.
push()でエラーがないかどうかを確認することもできます.次に示すように、他のデータ型の値を入力します.
混ぜて使いたいなら
let nameList: any[];
もできます(ただしanyの使用には慎重に!)オブジェクト内のタイプ定義
オブジェクトは、オブジェクトを宣言するときにタイプを定義できます.
let user1: {name: string; score: number};
上記の場合、user 1には文字列nameと数値型の点数しか含まれないのではないでしょうか.nameとscoreを持つオブジェクトでなければなりません.
この場合inline typeと呼ばれ、毎回タイプを定義する必要があるため、
interface
などの定義タイプを使用することができます.tuple
配列と同様に、配列項目の数とインデックスごとの要素タイプを固定できます.
let tuple2: [number, string];
tuple2 = [1, "hello"];
上記の場合、tuple2
はnumber
とstring
からなる2つの値の配列である. インデックスと同じデータ型が含まれていない場合は、エラーが発生する可能性があります.
整理する
タイプスクリプトにはJavaScriptと同様のタイプがあり、anyというトップレベルのタイプがあるため、どのタイプの変数にもサブタイプがあります.
逆にnullとundefinedは最低タイプであるため、定義された変数に他の親タイプを割り当てることができます.
Reference
この問題について(第2クラス), 我々は、より多くの情報をここで見つけました https://velog.io/@yhg0337/타입스크립트-타입テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol