TypeScript - 1
19645 ワード
タイプスクリプトとは?
JavaScriptタイプを付与する言語
JavaScriptの拡張言語です
なぜタイプスクリプトを書くのですか?
エラーのプロアクティブな予防
誤字は、データの形状が分からない場合に発生する可能性のあるエラーを処理することができます.
結果値は、ブラウザまたはコンソールウィンドウで常に決定されるわけではありません.コード作成中にある程度理解できます.
コードガイドと自動補完
function add(a: number, b: number): number {
return a + b;
}
前述したように、コードを記述する場合各パラメータのタイプと戻りタイプが明記されます.この場合、戻りタイプを指定する必要はありません.また、タイプスクリプトを類推してプレゼンテーションすることもできます.
最終的には、この利点にはコードガイドも含まれます.
次の
number type
で使用可能なapiを自動的に完了します.//@ts-checkとJSDock
タイプは、
JavaScript
においても明示することができる.しかし,
JSDock
を用いてすべての部分を表記すると,コードの毒性が低下し,コード量もそれに応じて増加することが分かる.「タイプスクリプトを直接書いたほうがいいでしょう」思わずこんな思いをするしかない.
基本タイプ
12種類の基本タイプ
// TS 문자
let str: string = 'hello';
// TS 숫자
let num: number = 10;
// TS 배열
let arr: Array<number> = [1,2,3];
let arr2: Array<string> = ['hello', 'world', 10]; //10에서는 에러가 난다!
let items: number[] = [1,2,3];
// TS 튜플
let address: [string, string] = ['seoul', 'gyunggi'];
// TS 객체
let obj: object = {};
/* 객체의 key 값에 대한 타입이 X
let person: object = {
name: 'ejk',
age: 100
};
*/
let person: { name: string, age: number } = {
name: 'ejk',
age: 100
};
// TS 진위값
let show: boolean = true;
n.関数
// 함수의 파라미터에 타입을 정의하는 방식
function sum(a: number, b: number): {
return a+b;
}
sum(10, 20);
// 함수의 반환 값에 타입을 정하는 방식
function add(): number{
return 10;
}
// 함수에 타입을 정의하는 방식
function sum(a: number, b: number): number{
return a+b;
}
sum(10, 20, 30, 40); // error! 2개의 인수가 필요한데 4개의 인수를 가져왔습니다!!
// 함수의 옵셔널 파라미터
function log(a: string, b?: string, c?: string){
// '?' 가 들어간 파라미터는 optional 하다
}
log('hello wolrd');
log('hello', 'hello');
インタフェース
変数のタイプとして使用できます.この場合、インタフェースがタイプであることを宣言する変数は、インタフェースを遵守する必要があります.これは、新しいタイプを定義するのと同じです.
interface User {
age: number;
name: string;
}
// 변수에 인터페이스 활용
let test: User = {
age: 33,
name: 'EJ';
}
let wrongTest: User = {
name: 'hello';
}
// 함수에 인터페이스 활용
function getUser(user: User){
console.log(user);
}
getUser(test);
getUser(wrongTest); // 에러! wrongTest 변수는 User의 age를 갖고 있지 않다!!
// 함수의 스펙(구조)에 인터페이스를 활용
// 라이브러리 제작 or 협업에서의 함수 정의 시 유용!
interface SumFunction{
(a: number, b: number): number;
}
var sum: SumFunction;
sum = function(a: number, b:number): number {
return a+b;
}
インデックスとバイナリ・モード
// 인덱싱
interface StringArray{
[index: number]: string;
}
let arr: StringArray = ['a','b','c'];
arr[0] = 10; // 에러! 10은 Array에 할당할 수 없다! -> 배열의 인덱싱 방식에 대해서 인터페이스를 정의할 수 있다.
// 딕셔너리 패턴
interface StringRegexDictionary{
[key: string]: RegExp;
}
let obj = {
// sth: /abc/,
cssFile: /\.css$/,
jsFile: /\.js$/,
}
obj['cssFile'] = 'a'; // 에러! -> 정규식이 아닌 문자열이 들어왔다
// 이점
Object.keys(obj).forEach(function(value){
// value : string 추론해준다
})
拡張インタフェース
interface Person{
name: string;
age: number;
}
// Developer는 Person의 name과 age를 상속한다
interface Developer extends Person{
language: string;
}
let test: Developer = {
name: 'EJ',
age: 100,
language: 'JS'
}
レッスンの準備:インフラストラクチャレッスンのブリッジリーダー、タイプスクリプト-エントリーReference
この問題について(TypeScript - 1), 我々は、より多くの情報をここで見つけました https://velog.io/@dmdwn3979/TypeScriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol