[JS] TypeScript


タイプスクリプトとは?

TypeScript(타입스크립트)は、JavaScript(자바스크립트)の上に位置する層としての言語である.JSは、StringNumberObjectundefined等である.元のタイプがありますが할당のコードがどのように使用されているかは不明です.TypeScript(타입스크립트)は、割り当てを確認するレイヤとして動作する.

タイプスクリプトのタイプ定義


既存のjavascriptでは、開発者の意図を推定する必要がありますが、どのタイプのパラメータを渡すか、どのタイプの戻り値を返すかは不明です.
function sum(a, b) {
	return a + b;
}

// 만약 문자열 '10', '20'이 넣어진다면 어떨까?
// 1020이라는 개발자의 의도와 맞지않는 결과값이 리턴될것이다.
// 자바스크립트엔진은 코드를 `Dynamic Typing(동적 타이핑)`으로 처리하기 때문이다.
以上の関数はTypeScriptとし、以下に示す.
function sum(a: number, b: number) {
	return a + b;
}
// '10', '20'을 넣는다면?
// Argument type is not assingable to type 'number'라는 에러가 뜰것이다.

タイプスクリプトのオブジェクト向けインタフェース


既存のJSは、객체(Object)の作成時にタイプが指定されていません.
const obj = {
	s1 : "i am String",
  	i1 : 123123,
  	b1 : true
}
しかし、その対象の形態を明らかにするために、TSInterfaceが存在する.
interface obj = {
	s1 : string;
  	i1 : number;
  	b1 : boolean;
}
変数(オブジェクト宣言)の後、: TypeName文を使用してJSオブジェクトをinterface宣言できます.
interface Obj = {
	s1 : string;
  	i1 : number;
  	b1 : boolean;
}

const obj: Obj = {
	s1 : "i am String",
  	i1 : 123123,
  	b1 : true
}

// 만약 다른 타입을 넣는다면 TS에서 에러를 띄워준다.
// class로도 선언이 가능하다

interface Class{
	s1 : string;
    n1 : number;
}

class MyClass {
	s1 : string;
  	n1 : number;
  
  	constructior(s1: string, n1: number){
    	this.s1 = s1;
      	this.n1 = n1;
    }
}

const myclass: Class = new MyClass("strings", 123);

の最後の部分

TSJSを使用すると、ファジイタイプの推論エラーがなくなり、後で再包装や追加の作業が必要になると、開発とメンテナンスがより便利になります.
もちろん、JSだけで開発は可能ですが、TSの方が便利であれば、より多くのメリットが得られるかもしれません.
参考になるところ
Type Script DOCS
TypeScriptとは?