JSからTS—3(関数)へ
TSが関数をどのように定義するかを見てみましょう.
さっそく始めましょう.
タイプスクリプトは、すべてのデータのタイプを決定する必要があります.通常の変数に加えて、パラメータとオブジェクトのデートも別々に入れます.
もちろん、関数にも適用する必要があります.関数には通常どのようなデータがありますか?C、C++を考慮すると、パラメータだけでなく、戻りタイプも決定する必要があります.下のヘルメットのようです.👇
以前の例を完全に返すように記録すると、
🤖 安くできます.
🙋 あ、でも
🤖 安くできます. Restパラメータ(=アレイタイプ) thisタイプ定義
🤖 いちばん前に書く関数戻りタイプ(異なる場合)
この場合、関数リロードを使用して解決できます.
私たちは間違いを心配するお客様に書類を作成します.😊
さっそく始めましょう.
どう書きますか。
タイプスクリプトは、すべてのデータのタイプを決定する必要があります.通常の変数に加えて、パラメータとオブジェクトのデートも別々に入れます.
もちろん、関数にも適用する必要があります.関数には通常どのようなデータがありますか?C、C++を考慮すると、パラメータだけでなく、戻りタイプも決定する必要があります.下のヘルメットのようです.👇
function add (x : type , y : type) : type
{...}
ここで、戻りタイプをパラメータの後ろに貼り付けます.以前の例を完全に返すように記録すると、
//void 반환
function add(num1: number, num2 : number ) : void {
console.log(num1+num2)
}
//bool 반환
function is(age:number ) : boolean {
return age > 19
}
また、関数のパラメータもインタフェースのように簡単に指定できます!function hello (name:string ) : string {
return `Hello, ${name || "world "} `
} // 에러 : 무조건 name 이 들어와야 한다고 생각하기 떄문.
function hello (name?:string ) : string{
return `Hello, ${name || "world "} `
} // 성공
🙋 JSでもデフォルトは使えますか?🤖 安くできます.
function hello (name = "world" ): string {
return `Hello, ${name} `
} // 성공
⚠▼オプションパラメータを使用する場合は、ご注意ください!function hello (name?:string , age : number ) : string{
return `Hello, ${name} . you are ${age}`
} // error
function hello (name:string , age ?: number ) : string{
return `Hello, ${name} . you are ${age}`
} // ok
オプションのパラメータが必要なパラメータの前にエラーが発生した場合!🙋 あ、でも
name
度の前に置いて、選択的なパラメータにしたいのですが、よろしいでしょうか.🤖 安くできます.
function hello (name:string | undefiend , age : number ) : string{
return `Hello, ${name} . you are ${age}`
} // ok
hello(undefined , 30)
パラメータタイプ
function add(...nums : number[]) {
return nums.reduce(() .....)
}
add(1,2,3,4)
add(1,2,3,4,5,5,2,1,3)
interface User {
name : string;
}
// 매개변수 없는 경우
function showName(this:User) {
console.log(this.name)
}
const Sam : User = {name : 'woong'}
const a = showName.bind(Sam); // this 를 Sam 객체로 강제함.
a()
🙋 パラメータを受け取った場合、this typeをどのように決定しますか?🤖 いちばん前に書く
interface User {
name : string;
}
// 매개변수 있는 경우
function showName(this:User , a: number , gender : 'm'|'f') {
//전달된 매개 변수는 2번째 부터 적용.
console.log(this.name)
}
const Sam : User = {name : 'woong'}
const a = showName.bind(Sam); // this 를 Sam 객체로 강제함.
a(30,'m')
interface User {
name : string;
age : number;
}
function joid (name :strinf , age : number | string ) : User | string {
if (typeof age == "number"){
return {name,age}
}
else{
return "숫자로 입력하셈"
}
}
const sam : User = join ("Sam" ,30 ) // error
const sam2 : string = join ("Sam" ,"30" ) // error
この場合、sam
およびsam2
は、それぞれの戻りタイプが不確定であるため、エラーである.この場合、関数リロードを使用して解決できます.
私たちは間違いを心配するお客様に書類を作成します.😊
....
function joid (name :strinf , age : number ) : User;
function joid (name :strinf , age : string ) : string;
function joid (name :strinf , age : number | string ) : User | string {
if (typeof age == "number"){
return {name,age}
}
else{
return "숫자로 입력하셈"
}
}
const sam : User = join ("Sam" ,30 ) // ok
const sam2 : string = join ("Sam" ,"30" ) // ok
パラメータのタイプまたは数に応じて異なるエコーを行う必要がある場合は、オーバーロードを使用してエコーを行うことができます.Reference
この問題について(JSからTS—3(関数)へ), 我々は、より多くの情報をここで見つけました https://velog.io/@j_user0719/JS-에서-TS-넘어가기-3-함수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol